using System; using System.Collections.Generic; using MoleMole.Config; using UnityEngine; namespace MoleMole { public class CGReplayPageContext : BasePageContext { private MonoGridScroller _cgScroller; private MonoScrollerFadeManager _fadeMgr; private Dictionary _dictBeforeFetch; public CGReplayPageContext() { config = new ContextPattern { contextName = "CGReplayPageContext", viewPrefabPath = "UI/Menus/Page/CGReplay/CGReplay" }; } protected override void BindViewCallbacks() { } public override bool OnNotify(Notify ntf) { return false; } protected override bool SetupView() { if (base.view == null || base.view.transform == null) { return false; } FetchWidget(); SetupAchieveInfoScroller(); BaseMonoCanvas mainCanvas = Singleton.Instance.GetMainCanvas(); if (mainCanvas != null) { MonoMainCanvas monoMainCanvas = mainCanvas as MonoMainCanvas; if (monoMainCanvas != null) { MonoVideoPlayer videoPlayer = monoMainCanvas.VideoPlayer; videoPlayer.OnVideoBegin = (Action)Delegate.Combine(videoPlayer.OnVideoBegin, new Action(OnVideoBegin)); MonoVideoPlayer videoPlayer2 = monoMainCanvas.VideoPlayer; videoPlayer2.OnVideoEnd = (Action)Delegate.Combine(videoPlayer2.OnVideoEnd, new Action(OnVideoEnd)); } } return false; } public override void Destroy() { base.Destroy(); BaseMonoCanvas mainCanvas = Singleton.Instance.GetMainCanvas(); if (mainCanvas != null) { MonoMainCanvas monoMainCanvas = mainCanvas as MonoMainCanvas; if (monoMainCanvas != null) { MonoVideoPlayer videoPlayer = monoMainCanvas.VideoPlayer; videoPlayer.OnVideoEnd = (Action)Delegate.Remove(videoPlayer.OnVideoEnd, new Action(OnVideoBegin)); MonoVideoPlayer videoPlayer2 = monoMainCanvas.VideoPlayer; videoPlayer2.OnVideoEnd = (Action)Delegate.Remove(videoPlayer2.OnVideoEnd, new Action(OnVideoEnd)); } } } private void FetchWidget() { _cgScroller = base.view.transform.Find("MissionList/ScrollView").GetComponent(); } private void SetupAchieveInfoScroller() { List cgDataItemList = Singleton.Instance.GetCgDataItemList(); if (_cgScroller == null) { return; } _cgScroller.Init(delegate(Transform trans, int index) { MonoCgIconButton component = trans.GetComponent(); if (!(component == null)) { component.SetupView(cgDataItemList[index]); component.SetClickCallback(OnCgIconButtonClicked); } }, cgDataItemList.Count); _fadeMgr = base.view.transform.Find("MissionList/ScrollView").GetComponent(); _fadeMgr.Init(_cgScroller.GetItemDict(), _dictBeforeFetch, IsMissionEqual); _fadeMgr.Play(); _dictBeforeFetch = null; } private void OnCgIconButtonClicked(CgDataItem data) { BaseMonoCanvas mainCanvas = Singleton.Instance.GetMainCanvas(); if (mainCanvas is MonoMainCanvas) { (mainCanvas as MonoMainCanvas).PlayVideo(data); } } private bool IsMissionEqual(RectTransform missionNew, RectTransform missionOld) { if (missionNew == null || missionOld == null) { return false; } MonoCgIconButton component = missionOld.GetComponent(); MonoCgIconButton component2 = missionNew.GetComponent(); return component2._item.cgID == component._item.cgID; } private void OnVideoBegin(CgDataItem cgDataItem) { BaseMonoCanvas mainCanvas = Singleton.Instance.GetMainCanvas(); if (mainCanvas != null) { MonoMainCanvas monoMainCanvas = mainCanvas as MonoMainCanvas; if (monoMainCanvas != null) { SetStarEffectActive(false); } } } private void OnVideoEnd(CgDataItem cgDataItem) { BaseMonoCanvas mainCanvas = Singleton.Instance.GetMainCanvas(); if (mainCanvas != null) { MonoMainCanvas monoMainCanvas = mainCanvas as MonoMainCanvas; if (monoMainCanvas != null) { SetStarEffectActive(true); } } } private void SetStarEffectActive(bool active) { base.view.transform.Find("MovingStars").gameObject.SetActive(active); } } }