From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/UI/ScreenShotShareView.cs | 1116 ++++++++++++++++++++ 1 file changed, 1116 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/ScreenShotShareView.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/ScreenShotShareView.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/ScreenShotShareView.cs b/Client/Assets/Scripts/XMainClient/UI/ScreenShotShareView.cs new file mode 100644 index 00000000..2d284520 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/ScreenShotShareView.cs @@ -0,0 +1,1116 @@ +using System; +using System.Collections.Generic; +using System.IO; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUpdater; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class ScreenShotShareView : DlgBase + { + public override string fileName + { + get + { + return "Common/Share"; + } + } + + public override int layer + { + get + { + return 1; + } + } + + public override bool autoload + { + get + { + return true; + } + } + + public override bool hideMainMenu + { + get + { + return true; + } + } + + public override int group + { + get + { + return 1; + } + } + + private XScreenShotShareDocument _doc = null; + + private int _share_count = 0; + + private uint _dance_timer_token = 0u; + + private uint _check_pic_token = 0u; + + private XFx _playing_fx = null; + + private float _max_dist = 9f; + + private float _min_dist = 3f; + + private HashSet _check_index = new HashSet(); + + private List _mode_go = new List(); + + private List _mode_effectgo = new List(); + + private string _saved_file_path = ""; + + private int _dance_num = 0; + + private XFx fx; + + protected override void Init() + { + this._doc = XDocuments.GetSpecificDocument(XScreenShotShareDocument.uuID); + this._doc.ScreenShotView = this; + string value = XSingleton.singleton.GetValue("CameraValue"); + string[] array = value.Split(new char[] + { + '|' + }); + this._min_dist = float.Parse(array[0]); + this._max_dist = float.Parse(array[1]); + this.fx = XSingleton.singleton.CreateUIFx("Effects/FX_Particle/UIfx/UI_Share", base.uiBehaviour.mEffectParent, false); + this.InitLeftMenu(); + } + + public override void RegisterEvent() + { + base.uiBehaviour.mQQBtn1.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnQQShareSession)); + base.uiBehaviour.mQQBtn2.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnQQShareQZone)); + base.uiBehaviour.mWeChatBtn1.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnWeChatShareSession)); + base.uiBehaviour.mWeChatBtn2.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnWeChatShareTimeLine)); + base.uiBehaviour.mClose.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnClose)); + base.uiBehaviour.mDoScreenShot.RegisterClickEventHandler(new ButtonClickEventHandler(this.CaptureScreenShot)); + base.uiBehaviour.mReqShareBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.ReqShare)); + base.uiBehaviour.mSnapShotAgain.RegisterClickEventHandler(new ButtonClickEventHandler(this.ReScreenShot)); + base.uiBehaviour.mQQBackClick.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnCloseShare)); + base.uiBehaviour.mWeChatBackClick.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnCloseShare)); + base.uiBehaviour.mSnapRoot.RegisterSpriteDragEventHandler(new SpriteDragEventHandler(this.OnCharacterWindowDrag)); + base.uiBehaviour.mReqSave.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnSavePic)); + base.uiBehaviour.mModeSp.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnShowMode)); + base.uiBehaviour.mDanceSp.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnShowAnim)); + base.uiBehaviour.mEffectsSp.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnShowFx)); + base.uiBehaviour.mEffectsMore.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnShowMoreFx)); + base.uiBehaviour.mUnlockBack.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnHideUnlock)); + base.uiBehaviour.mZoomSlider.RegisterValueChangeEventHandler(new SliderValueChangeEventHandler(this.OnZoomSliderChanged)); + base.uiBehaviour.mModeBg.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnClickBg)); + base.uiBehaviour.mDanceBg.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnClickBg)); + base.uiBehaviour.mEffectBg.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnClickBg)); + base.RegisterEvent(); + } + + protected override void OnShow() + { + this.ShowCaptureFrame(); + SceneType sceneType = XSingleton.singleton.SceneType; + if (sceneType != SceneType.SCENE_FAMILYGARDEN) + { + if (sceneType != SceneType.SCENE_WEDDING) + { + if (sceneType == SceneType.SCENE_LEISURE) + { + bool flag = DlgBase.singleton._yorozuyaHandler != null; + if (flag) + { + DlgBase.singleton._yorozuyaHandler.SetVisible(false); + } + } + } + else + { + bool flag2 = DlgBase.singleton._WeddingHandler != null; + if (flag2) + { + DlgBase.singleton._WeddingHandler.SetVisible(false); + } + } + } + else + { + bool flag3 = DlgBase.singleton._HomeHandler != null; + if (flag3) + { + DlgBase.singleton._HomeHandler.SetVisible(false); + } + } + this.OnReqEffect(); + base.uiBehaviour.mDoScreenShot.SetAudioClip("Audio/UI/Cam_photo"); + base.uiBehaviour.mZoomSlider.Value = (XSingleton.singleton.GameCamera.TargetOffset - this._min_dist) / (this._max_dist - this._min_dist); + this.InitDance(); + XSingleton.singleton.shareCallbackType = ShareCallBackType.WeekShare; + } + + protected override void OnHide() + { + bool flag = DlgBase.singleton.IsLoaded() && DlgBase.singleton.IsVisible(); + if (flag) + { + DlgBase.singleton.StackRefresh(); + } + SceneType sceneType = XSingleton.singleton.SceneType; + if (sceneType != SceneType.SCENE_FAMILYGARDEN) + { + if (sceneType != SceneType.SCENE_WEDDING) + { + if (sceneType == SceneType.SCENE_LEISURE) + { + bool flag2 = DlgBase.singleton._yorozuyaHandler != null; + if (flag2) + { + DlgBase.singleton._yorozuyaHandler.SetVisible(true); + } + } + } + else + { + bool flag3 = DlgBase.singleton._WeddingHandler != null; + if (flag3) + { + DlgBase.singleton._WeddingHandler.SetVisible(true); + } + } + } + else + { + bool flag4 = DlgBase.singleton._HomeHandler != null; + if (flag4) + { + DlgBase.singleton._HomeHandler.SetVisible(true); + } + } + XSingleton.singleton.KillTimer(this._dance_timer_token); + this._dance_timer_token = 0u; + XSingleton.singleton.KillTimer(this._check_pic_token); + this._check_pic_token = 0u; + this.OnResetEntityRender(); + this.OnStopPlayingFX(); + for (int i = 0; i < this._mode_go.Count; i++) + { + GameObject gameObject = this._mode_go[i]; + IXUICheckBox ixuicheckBox = gameObject.transform.Find("option1/Normal").GetComponent("XUICheckBox") as IXUICheckBox; + ixuicheckBox.bChecked = true; + } + for (int j = 0; j < this._mode_effectgo.Count; j++) + { + GameObject gameObject2 = this._mode_effectgo[j]; + IXUICheckBox ixuicheckBox2 = gameObject2.transform.Find("Normal").GetComponent("XUICheckBox") as IXUICheckBox; + ixuicheckBox2.bChecked = false; + } + XSingleton.singleton.GameCamera.TargetOffset = XSingleton.singleton.GameCamera.DefaultOffset; + XSingleton.singleton.MakeEffectEnable(XPostEffect.GausBlur, false); + base.uiBehaviour.mCaptureTexture.SetRuntimeTex(null, true); + } + + protected override void OnUnload() + { + bool flag = this.fx != null; + if (flag) + { + XSingleton.singleton.DestroyFx(this.fx, true); + this.fx = null; + } + } + + public override void StackRefresh() + { + base.StackRefresh(); + XSingleton.singleton.EnableMainDummy(true, base.uiBehaviour.mSnapShot); + } + + public void ShowMainView() + { + base.uiBehaviour.mCharFrame.SetActive(false); + base.uiBehaviour.mUnlockFrame.SetVisible(false); + base.uiBehaviour.mModeSelect.SetVisible(false); + base.uiBehaviour.mDanceSelect.SetVisible(false); + base.uiBehaviour.mEffectsSelect.SetVisible(false); + } + + public void ShowCharView() + { + base.uiBehaviour.mCharFrame.SetActive(true); + base.uiBehaviour.mUnlockFrame.SetVisible(false); + base.uiBehaviour.mModeSelect.SetVisible(false); + base.uiBehaviour.mDanceSelect.SetVisible(false); + base.uiBehaviour.mEffectsSelect.SetVisible(false); + XSingleton.singleton.EnableMainDummy(true, base.uiBehaviour.mSnapShot); + } + + private void ShowCaptureFrame() + { + base.uiBehaviour.mCaptureTexture.SetRuntimeTex(null, true); + base.uiBehaviour.mDoScreenShot.SetVisible(true); + base.uiBehaviour.mKacha.SetVisible(false); + base.uiBehaviour.mShareFrame.SetActive(false); + base.uiBehaviour.mClose.SetVisible(true); + base.uiBehaviour.mScaleDoing.SetActive(true); + base.uiBehaviour.mLogo.SetActive(false); + XSingleton.singleton.MakeEffectEnable(XPostEffect.GausBlur, false); + base.uiBehaviour.mSnapRoot.transform.localPosition = new Vector3(base.uiBehaviour.mSnapRoot.transform.localPosition.x, base.uiBehaviour.mSnapRoot.transform.localPosition.y, 0f); + } + + public void IOS3DTouchScreenShot() + { + base.uiBehaviour.mDoScreenShot.SetVisible(false); + base.uiBehaviour.mClose.SetVisible(false); + base.uiBehaviour.mScaleDoing.SetActive(false); + base.uiBehaviour.mModeSp.SetVisible(false); + base.uiBehaviour.mDanceSp.SetVisible(false); + base.uiBehaviour.mEffectsSp.SetVisible(false); + base.uiBehaviour.mZoom.SetActive(false); + base.uiBehaviour.mZoom.SetActive(true); + base.uiBehaviour.mLogo.SetActive(true); + bool flag = XSingleton.singleton.Channel == XAuthorizationChannel.XAuthorization_QQ; + if (flag) + { + base.uiBehaviour.mLogoQQ.SetActive(true); + base.uiBehaviour.mLogoWC.SetActive(false); + } + else + { + base.uiBehaviour.mLogoQQ.SetActive(false); + base.uiBehaviour.mLogoWC.SetActive(true); + } + base.uiBehaviour.mPlayerName.SetText(XSingleton.singleton.XPlayerData.Name); + base.uiBehaviour.mServerName.SetText(XSingleton.singleton.Server); + DlgBase.singleton.SetMaqueeSwitch(false); + XSingleton.singleton.SetTimer(0.1f, new XTimerMgr.ElapsedEventHandler(XSingleton.singleton.CaptureScreenshot), null); + XSingleton.singleton.SetTimer(0.2f, new XTimerMgr.ElapsedEventHandler(this.PlayScreenFx), null); + } + + public bool CaptureScreenShot(IXUIButton btn) + { + base.uiBehaviour.mDoScreenShot.SetVisible(false); + base.uiBehaviour.mClose.SetVisible(false); + base.uiBehaviour.mScaleDoing.SetActive(false); + base.uiBehaviour.mModeSp.SetVisible(false); + base.uiBehaviour.mDanceSp.SetVisible(false); + base.uiBehaviour.mEffectsSp.SetVisible(false); + base.uiBehaviour.mZoom.SetActive(false); + base.uiBehaviour.mLogo.SetActive(true); + bool flag = XSingleton.singleton.Channel == XAuthorizationChannel.XAuthorization_QQ; + if (flag) + { + base.uiBehaviour.mLogoQQ.SetActive(true); + base.uiBehaviour.mLogoWC.SetActive(false); + } + else + { + base.uiBehaviour.mLogoQQ.SetActive(false); + base.uiBehaviour.mLogoWC.SetActive(true); + } + base.uiBehaviour.mPlayerName.SetText(XSingleton.singleton.XPlayerData.Name); + base.uiBehaviour.mServerName.SetText(XSingleton.singleton.Server); + DlgBase.singleton.SetMaqueeSwitch(false); + XSingleton.singleton.CaptureScreenshot(null); + XSingleton.singleton.SetTimer(0.2f, new XTimerMgr.ElapsedEventHandler(this.PlayScreenFx), null); + return true; + } + + public bool ReqShare(IXUIButton btn) + { + bool flag = XSingleton.singleton.Channel == XAuthorizationChannel.XAuthorization_QQ; + if (flag) + { + bool flag2 = XSingleton.singleton.XPlatform.CheckStatus("QQ_Installed", ""); + bool flag3 = !flag2; + if (flag3) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("ERR_QQ_NOT_INSTALLED"), "fece00"); + return false; + } + base.uiBehaviour.mQQFrame.SetVisible(true); + base.uiBehaviour.mWeChatFrame.SetVisible(false); + base.uiBehaviour.mQQPlayTween.SetTweenGroup(0); + base.uiBehaviour.mQQPlayTween.ResetTweenByGroup(true, 0); + base.uiBehaviour.mQQPlayTween.PlayTween(true, -1f); + } + else + { + bool flag4 = XSingleton.singleton.Channel == XAuthorizationChannel.XAuthorization_WeChat; + if (flag4) + { + bool flag5 = XSingleton.singleton.XPlatform.CheckStatus("Weixin_Installed", ""); + bool flag6 = !flag5; + if (flag6) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("ERR_WECHAT_NOT_INSTALLED"), "fece00"); + return false; + } + base.uiBehaviour.mQQFrame.SetVisible(false); + base.uiBehaviour.mWeChatFrame.SetVisible(true); + base.uiBehaviour.mWCPlayTween.SetTweenGroup(0); + base.uiBehaviour.mWCPlayTween.ResetTweenByGroup(true, 0); + base.uiBehaviour.mWCPlayTween.PlayTween(true, -1f); + } + } + return true; + } + + public bool ReScreenShot(IXUIButton btn) + { + this.ShowCaptureFrame(); + return true; + } + + private void PlayScreenFx(object obj) + { + base.uiBehaviour.mKacha.SetVisible(true); + base.uiBehaviour.mPlayTween.SetTweenGroup(0); + base.uiBehaviour.mPlayTween.ResetTweenByGroup(true, 0); + base.uiBehaviour.mPlayTween.PlayTween(true, -1f); + XSingleton.singleton.SetTimer(0.4f, new XTimerMgr.ElapsedEventHandler(this.ShowShare), null); + base.uiBehaviour.mSnapRoot.transform.localPosition = new Vector3(base.uiBehaviour.mSnapRoot.transform.localPosition.x, base.uiBehaviour.mSnapRoot.transform.localPosition.y, 1000f); + this._share_count = 0; + } + + private void ShowShare(object obj) + { + bool flag = !base.IsVisible(); + if (!flag) + { + bool flag2 = !File.Exists(XSingleton.singleton.FilePath); + if (flag2) + { + base.uiBehaviour.mSnapRoot.transform.localPosition = new Vector3(base.uiBehaviour.mSnapRoot.transform.localPosition.x, base.uiBehaviour.mSnapRoot.transform.localPosition.y, 0f); + this._share_count++; + bool flag3 = this._share_count > 30; + if (flag3) + { + XSingleton.singleton.ShowSystemTip("Failed", "fece00"); + } + else + { + XSingleton.singleton.SetTimer(0.1f, new XTimerMgr.ElapsedEventHandler(this.ShowShare), null); + } + } + else + { + base.uiBehaviour.mSnapRoot.transform.localPosition = new Vector3(base.uiBehaviour.mSnapRoot.transform.localPosition.x, base.uiBehaviour.mSnapRoot.transform.localPosition.y, 1000f); + base.uiBehaviour.mShareFrame.SetActive(true); + base.uiBehaviour.mDoScreenShot.SetVisible(false); + base.uiBehaviour.mQQFrame.SetVisible(false); + base.uiBehaviour.mWeChatFrame.SetVisible(false); + base.uiBehaviour.mModeSp.SetVisible(true); + base.uiBehaviour.mDanceSp.SetVisible(true); + base.uiBehaviour.mEffectsSp.SetVisible(true); + base.uiBehaviour.mZoom.SetActive(true); + base.uiBehaviour.mLogo.SetActive(false); + bool visible = XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_Photo_Share); + base.uiBehaviour.mReqShareBtn.SetVisible(visible); + DlgBase.singleton.SetMaqueeSwitch(true); + this.OnStopPlayingFX(); + XSingleton.singleton.MakeEffectEnable(XPostEffect.GausBlur, true); + base.uiBehaviour.mPicFramePlayTween.SetTweenGroup(0); + base.uiBehaviour.mPicFramePlayTween.ResetTweenByGroup(true, 0); + base.uiBehaviour.mPicFramePlayTween.PlayTween(true, -1f); + XSingleton.singleton.AddLog("The screen file path: ", XSingleton.singleton.FilePath, null, null, null, null, XDebugColor.XDebug_None); + XSingleton.singleton.AddLog("File exist: ", File.Exists(XSingleton.singleton.FilePath).ToString(), null, null, null, null, XDebugColor.XDebug_None); + RuntimePlatform platform = Application.platform; + if ((int)platform != 8 && (int)platform != 11) + { + byte[] array = File.ReadAllBytes(XSingleton.singleton.FilePath); + bool flag4 = array != null; + if (flag4) + { + Texture2D texture2D = new Texture2D(2, 2); + texture2D.LoadImage(array); + base.uiBehaviour.mCaptureTexture.SetRuntimeTex(texture2D, true); + } + } + else + { + byte[] array2 = File.ReadAllBytes(XSingleton.singleton.FilePath); + Texture2D texture2D2 = new Texture2D(2, 2); + bool flag5 = texture2D2.LoadImage(array2); + bool flag6 = flag5; + if (flag6) + { + base.uiBehaviour.mCaptureTexture.SetRuntimeTex(texture2D2, true); + int width = texture2D2.width; + int height = texture2D2.height; + bool flag7 = width <= 600; + if (flag7) + { + this.ShowCaptureFrame(); + } + } + else + { + bool flag8 = !flag5; + if (flag8) + { + this.ShowCaptureFrame(); + } + } + } + } + } + } + + public bool OnQQShareSession(IXUIButton btn) + { + XSingleton.singleton.SendStatisticToServer(ShareOpType.Share, DragonShareType.MainCityShare); + XSingleton.singleton.ShareScreen(true); + return true; + } + + public bool OnQQShareQZone(IXUIButton btn) + { + XSingleton.singleton.SendStatisticToServer(ShareOpType.Share, DragonShareType.MainCityShare); + XSingleton.singleton.ShareScreen(false); + return true; + } + + public bool OnWeChatShareSession(IXUIButton btn) + { + XSingleton.singleton.SendStatisticToServer(ShareOpType.Share, DragonShareType.MainCityShare); + XSingleton.singleton.ShareScreen(true); + return true; + } + + public bool OnWeChatShareTimeLine(IXUIButton btn) + { + XSingleton.singleton.SendStatisticToServer(ShareOpType.Share, DragonShareType.MainCityShare); + XSingleton.singleton.ShareScreen(false); + return true; + } + + public bool OnClose(IXUIButton btn) + { + this.SetVisible(false, true); + return true; + } + + public void OnCloseShare(IXUISprite sp) + { + base.uiBehaviour.mQQFrame.SetVisible(false); + base.uiBehaviour.mWeChatFrame.SetVisible(false); + } + + private bool OnDance(IXUIButton btn) + { + float num = XSingleton.singleton.SetMainAnimationGetLength(XSingleton.singleton.Player.Present.PresentLib.Dance); + XSingleton.singleton.KillTimer(this._dance_timer_token); + int @int = XSingleton.singleton.GetInt("DanceLoopCount"); + this._dance_timer_token = XSingleton.singleton.SetTimer(num * (float)@int, new XTimerMgr.ElapsedEventHandler(this.OnFinishDance), null); + return true; + } + + private void OnFinishDance(object obj) + { + XSingleton.singleton.SetMainAnimation(XSingleton.singleton.Player.Present.PresentLib.Idle); + } + + protected bool OnCharacterWindowDrag(Vector2 delta) + { + XSingleton.singleton.RotateMain(-delta.x / 2f); + return true; + } + + private void OnShowMode(IXUISprite sp) + { + bool flag = base.uiBehaviour.mModeSelect.IsVisible(); + if (flag) + { + base.uiBehaviour.mModeSelect.SetVisible(false); + } + else + { + base.uiBehaviour.mModeSelect.SetVisible(true); + } + base.uiBehaviour.mDanceSelect.SetVisible(false); + base.uiBehaviour.mEffectsSelect.SetVisible(false); + } + + private void OnShowAnim(IXUISprite sp) + { + bool flag = this._dance_num == 0; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("ERR_NO_DANCE_ANIM"), "fece00"); + } + else + { + base.uiBehaviour.mModeSelect.SetVisible(false); + bool flag2 = base.uiBehaviour.mDanceSelect.IsVisible(); + if (flag2) + { + base.uiBehaviour.mDanceSelect.SetVisible(false); + } + else + { + base.uiBehaviour.mDanceSelect.SetVisible(true); + } + base.uiBehaviour.mEffectsSelect.SetVisible(false); + } + } + + private void OnShowFx(IXUISprite sp) + { + base.uiBehaviour.mModeSelect.SetVisible(false); + base.uiBehaviour.mDanceSelect.SetVisible(false); + bool flag = base.uiBehaviour.mEffectsSelect.IsVisible(); + if (flag) + { + base.uiBehaviour.mEffectsSelect.SetVisible(false); + } + else + { + base.uiBehaviour.mEffectsSelect.SetVisible(true); + } + } + + private void OnShowMoreFx(IXUISprite sp) + { + base.uiBehaviour.mEffectsSelect.SetVisible(false); + bool flag = base.uiBehaviour.mUnlockFrame.IsVisible(); + if (!flag) + { + int num = this.OnShowMoreFxFrame(); + bool flag2 = num > 0; + if (flag2) + { + base.uiBehaviour.mUnlockFrame.SetVisible(true); + } + else + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("ERR_NO_MORE_EFFECTS"), "fece00"); + } + } + } + + private int OnShowMoreFxFrame() + { + this.OnStopPlayingFX(); + base.uiBehaviour.mEffectListPool.ReturnAll(false); + uint num = 0u; + int num2 = 0; + for (int i = 0; i < this._doc.EffectAllListId.Count; i++) + { + bool flag = this._doc.EffectListId.Contains(this._doc.EffectAllListId[i]); + if (!flag) + { + bool flag2 = num == 0u; + if (flag2) + { + num = this._doc.EffectAllListId[i]; + } + List rowDataById = this._doc.GetRowDataById(this._doc.EffectAllListId[i]); + GameObject gameObject = base.uiBehaviour.mEffectListPool.FetchGameObject(false); + gameObject.transform.localPosition = new Vector3(base.uiBehaviour.mEffectListPool.TplPos.x, base.uiBehaviour.mEffectListPool.TplPos.y - (float)(num2 * base.uiBehaviour.mEffectListPool.TplHeight), base.uiBehaviour.mEffectListPool.TplPos.z); + IXUILabel ixuilabel = gameObject.transform.Find("t").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(rowDataById[0].EffectName); + IXUILabel ixuilabel2 = gameObject.transform.Find("t2").GetComponent("XUILabel") as IXUILabel; + ixuilabel2.SetText(rowDataById[0].EffectName); + IXUICheckBox ixuicheckBox = gameObject.transform.GetComponent("XUICheckBox") as IXUICheckBox; + ixuicheckBox.RegisterOnCheckEventHandler(new CheckBoxOnCheckEventHandler(this.OnSelectEffect)); + ixuicheckBox.ID = (ulong)this._doc.EffectAllListId[i]; + bool flag3 = num2 == 0; + if (flag3) + { + ixuicheckBox.bChecked = true; + this.OnSetEffect((int)this._doc.EffectAllListId[i]); + } + else + { + ixuicheckBox.bChecked = false; + } + num2++; + } + } + this.OnInitUnlockInfo(num); + return num2; + } + + private void OnInitUnlockInfo(uint index) + { + List rowDataById = this._doc.GetRowDataById(index); + base.uiBehaviour.mConditionPool.ReturnAll(false); + for (int i = 0; i < rowDataById.Count; i++) + { + bool flag = false; + GameObject gameObject = base.uiBehaviour.mConditionPool.FetchGameObject(false); + gameObject.transform.localPosition = new Vector3(base.uiBehaviour.mConditionPool.TplPos.x, base.uiBehaviour.mConditionPool.TplPos.y - (float)(i * base.uiBehaviour.mConditionPool.TplHeight), base.uiBehaviour.mConditionPool.TplPos.z); + IXUILabel ixuilabel = gameObject.transform.Find("condition1").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel2 = gameObject.transform.Find("Label").GetComponent("XUILabel") as IXUILabel; + IXUISprite ixuisprite = gameObject.transform.Find("ok").GetComponent("XUISprite") as IXUISprite; + uint num = rowDataById[i].Condition[0, 0]; + uint num2 = rowDataById[i].Condition[0, 1]; + switch (num) + { + case 1u: + { + bool flag2 = this._doc.CharmVal >= num2; + if (flag2) + { + flag = true; + } + break; + } + case 2u: + { + uint level = XSingleton.singleton.Player.PlayerAttributes.Level; + bool flag3 = level >= num2; + if (flag3) + { + flag = true; + } + break; + } + case 3u: + { + XRechargeDocument specificDocument = XDocuments.GetSpecificDocument(XRechargeDocument.uuID); + bool flag4 = specificDocument.TotalPay >= num2; + if (flag4) + { + flag = true; + } + break; + } + case 4u: + { + XWelfareDocument specificDocument2 = XDocuments.GetSpecificDocument(XWelfareDocument.uuID); + bool flag5 = specificDocument2.IsOwnMemberPrivilege((MemberPrivilege)num2); + if (flag5) + { + flag = true; + } + break; + } + } + ixuilabel.SetText(rowDataById[i].ConditionDesc); + ixuilabel2.SetText(rowDataById[i].desc); + ixuilabel2.ID = (ulong)rowDataById[i].SystemID; + ixuilabel2.RegisterLabelClickEventHandler(new LabelClickEventHandler(this.OnEnterSystemUnlock)); + bool flag6 = flag; + if (flag6) + { + ixuisprite.SetVisible(true); + ixuilabel2.SetVisible(false); + } + else + { + ixuisprite.SetVisible(false); + ixuilabel2.SetVisible(true); + } + } + } + + private void OnStopPlayingFX() + { + bool flag = this._playing_fx != null; + if (flag) + { + XSingleton.singleton.DestroyFx(this._playing_fx, true); + } + this._playing_fx = null; + } + + private void OnEnterSystemUnlock(IXUILabel lb) + { + this.SetVisible(false, true); + XSingleton.singleton.OpenSystem((XSysDefine)lb.ID, 0UL); + } + + private void OnHideUnlock(IXUISprite sp) + { + base.uiBehaviour.mUnlockFrame.SetVisible(false); + this.OnStopPlayingFX(); + } + + public bool OnModeChanged(IXUICheckBox box) + { + bool flag = !box.bChecked; + if (flag) + { + bool flag2 = this._check_index.Contains((uint)box.ID); + if (flag2) + { + this._check_index.Remove((uint)box.ID); + } + } + else + { + bool flag3 = !this._check_index.Contains((uint)box.ID); + if (flag3) + { + this._check_index.Add((uint)box.ID); + } + } + this.OnRefreshPlayerRender(); + return true; + } + + public bool OnAnimChanged(IXUICheckBox box) + { + bool flag = !box.bChecked; + bool result; + if (flag) + { + result = false; + } + else + { + XDanceDocument.Doc.ReqStartJustDance((uint)box.ID); + result = true; + } + return result; + } + + public bool OnEffectChanged(IXUICheckBox box) + { + this.OnStopPlayingFX(); + bool flag = !box.bChecked; + bool result; + if (flag) + { + result = false; + } + else + { + Transform transform = XSingleton.singleton.UIRoot.Find("Camera").transform; + List rowDataById = this._doc.GetRowDataById((uint)box.ID); + this._playing_fx = XSingleton.singleton.CreateAndPlay(rowDataById[0].EffectRoute, transform, Vector3.zero, Vector3.one, 1f, true, 3600f, true); + result = true; + } + return result; + } + + private void OnSetEffect(int index) + { + this.OnInitUnlockInfo((uint)index); + this.OnStopPlayingFX(); + List rowDataById = this._doc.GetRowDataById((uint)index); + this._playing_fx = XSingleton.singleton.CreateUIFx(rowDataById[0].EffectRoute, base.uiBehaviour.mUnlockEffectWindow.transform, new Vector3(0.25f, 0.25f, 0.25f), false); + } + + public bool OnSelectEffect(IXUICheckBox box) + { + bool flag = !box.bChecked; + bool result; + if (flag) + { + result = false; + } + else + { + this.OnSetEffect((int)box.ID); + result = true; + } + return result; + } + + public bool OnSavePic(IXUIButton btn) + { + bool flag = this._saved_file_path == XSingleton.singleton.FilePath; + bool result; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("CAMERA_SAVED_ERR"), "fece00"); + result = false; + } + else + { + RuntimePlatform platform = Application.platform; + if ((int)platform != 8) + { + if ((int)platform == 11) + { + string text = "/../../../../DCIM/Camera"; + text = Application.persistentDataPath + text; + bool flag2 = !Directory.Exists(text); + if (flag2) + { + Directory.CreateDirectory(text); + } + string destFileName = text + "/" + XSingleton.singleton.FileName; + File.Copy(XSingleton.singleton.FilePath, destFileName); + XSingleton.singleton.RefreshPhotoView(text); + } + } + else + { + this._saved_file_path = XSingleton.singleton.FilePath; + XSingleton.singleton.SaveScreenshotPic(this._saved_file_path); + } + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("CAMERA_SAVED"), "fece00"); + this._saved_file_path = XSingleton.singleton.FilePath; + result = true; + } + return result; + } + + public void OnAnimStart(IXUISprite sp) + { + } + + public void OnClickBg(IXUISprite sp) + { + bool flag = sp.ID == 1UL; + if (flag) + { + base.uiBehaviour.mModeSelect.SetVisible(false); + } + else + { + bool flag2 = sp.ID == 2UL; + if (flag2) + { + base.uiBehaviour.mDanceSelect.SetVisible(false); + } + else + { + bool flag3 = sp.ID == 3UL; + if (flag3) + { + base.uiBehaviour.mEffectsSelect.SetVisible(false); + } + } + } + } + + public bool OnZoomSliderChanged(float val) + { + XSingleton.singleton.GameCamera.TargetOffset = this._min_dist + (this._max_dist - this._min_dist) * val; + return true; + } + + public bool CanRenderOtherPalyers() + { + bool flag = !base.IsLoaded() || !base.IsVisible(); + return flag || this._check_index.Contains(1u); + } + + private void OnRefreshPlayerRender() + { + bool flag = this._check_index.Contains(0u); + bool flag2 = XSingleton.singleton.Player != null; + if (flag2) + { + XSingleton.singleton.GameCamera.SetCameraLayer(XPlayer.PlayerLayer, flag); + XSingleton.singleton.SetCullLayer(flag); + XBillboardShowCtrlEventArgs @event = XEventPool.GetEvent(); + @event.show = flag; + @event.Firer = XSingleton.singleton.Player; + @event.type = BillBoardHideType.Photo; + XSingleton.singleton.FireEvent(@event); + } + bool flag3 = this._check_index.Contains(2u); + XSingleton.singleton.GameCamera.SetCameraLayer(XNpc.NpcLayer, flag3); + List npcs = XSingleton.singleton.GetNpcs(XSingleton.singleton.SceneID); + bool flag4 = npcs != null; + if (flag4) + { + for (int i = 0; i < npcs.Count; i++) + { + XNpc npc = XSingleton.singleton.GetNpc(npcs[i]); + bool flag5 = npc != null; + if (flag5) + { + XBillboardShowCtrlEventArgs event2 = XEventPool.GetEvent(); + event2.show = flag3; + event2.Firer = npc; + event2.type = BillBoardHideType.Photo; + XSingleton.singleton.FireEvent(event2); + } + } + } + bool flag6 = this._check_index.Contains(1u); + XSingleton.singleton.GameCamera.SetCameraLayer(XRole.RoleLayer, flag6); + List ally = XSingleton.singleton.GetAlly(XSingleton.singleton.Player); + bool flag7 = ally != null; + if (flag7) + { + for (int j = 0; j < ally.Count; j++) + { + bool flag8 = ally[j] != null; + if (flag8) + { + bool flag9 = ally[j].IsRole && !ally[j].IsPlayer; + if (flag9) + { + XBillboardShowCtrlEventArgs event3 = XEventPool.GetEvent(); + event3.show = flag6; + event3.Firer = ally[j]; + event3.type = BillBoardHideType.Photo; + XSingleton.singleton.FireEvent(event3); + } + } + } + } + } + + private void OnResetEntityRender() + { + XSingleton.singleton.GameCamera.SetCameraLayer(XPlayer.PlayerLayer, true); + XBillboardShowCtrlEventArgs @event = XEventPool.GetEvent(); + @event.show = true; + @event.type = BillBoardHideType.Photo; + @event.Firer = XSingleton.singleton.Player; + XSingleton.singleton.FireEvent(@event); + XSingleton.singleton.GameCamera.SetCameraLayer(XNpc.NpcLayer, true); + List npcs = XSingleton.singleton.GetNpcs(XSingleton.singleton.SceneID); + bool flag = npcs != null; + if (flag) + { + for (int i = 0; i < npcs.Count; i++) + { + XNpc npc = XSingleton.singleton.GetNpc(npcs[i]); + bool flag2 = npc != null; + if (flag2) + { + XBillboardShowCtrlEventArgs event2 = XEventPool.GetEvent(); + event2.show = true; + event2.Firer = npc; + event2.type = BillBoardHideType.Photo; + XSingleton.singleton.FireEvent(event2); + } + } + } + XSingleton.singleton.GameCamera.SetCameraLayer(XRole.RoleLayer, true); + List ally = XSingleton.singleton.GetAlly(XSingleton.singleton.Player); + for (int j = 0; j < ally.Count; j++) + { + bool flag3 = ally[j].IsRole && !ally[j].IsPlayer; + if (flag3) + { + XBillboardShowCtrlEventArgs event3 = XEventPool.GetEvent(); + event3.show = true; + event3.Firer = ally[j]; + event3.type = BillBoardHideType.Photo; + XSingleton.singleton.FireEvent(event3); + } + } + } + + private void OnReqEffect() + { + RpcC2G_PhotographEffect rpc = new RpcC2G_PhotographEffect(); + XSingleton.singleton.Send(rpc); + } + + public void OnRefreshEffects() + { + base.uiBehaviour.mEffectPool.ReturnAll(false); + this._mode_effectgo.Clear(); + base.uiBehaviour.mEffectsBack.spriteHeight = base.uiBehaviour.mEffectPool.TplHeight * this._doc.EffectListId.Count + 60; + int num = (this._doc.EffectListId.Count % 2 == 0) ? (base.uiBehaviour.mEffectPool.TplHeight / 2) : 0; + for (int i = 0; i < this._doc.EffectListId.Count; i++) + { + List rowDataById = this._doc.GetRowDataById(this._doc.EffectListId[i]); + int num2 = (i % 2 == 0) ? 1 : -1; + GameObject gameObject = base.uiBehaviour.mEffectPool.FetchGameObject(false); + this._mode_effectgo.Add(gameObject); + gameObject.transform.localPosition = new Vector3(base.uiBehaviour.mEffectPool.TplPos.x, base.uiBehaviour.mEffectPool.TplPos.y + (float)(num2 * ((i + 1) / 2) * base.uiBehaviour.mEffectPool.TplHeight) + (float)num, base.uiBehaviour.mEffectPool.TplPos.z); + IXUILabel ixuilabel = gameObject.transform.Find("Name").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(rowDataById[0].EffectName); + IXUICheckBox ixuicheckBox = gameObject.transform.Find("Normal").GetComponent("XUICheckBox") as IXUICheckBox; + ixuicheckBox.RegisterOnCheckEventHandler(new CheckBoxOnCheckEventHandler(this.OnEffectChanged)); + ixuicheckBox.ID = (ulong)this._doc.EffectListId[i]; + ixuicheckBox.bChecked = false; + } + base.uiBehaviour.mEffectsMore.transform.localPosition = new Vector3(base.uiBehaviour.mEffectsMore.transform.localPosition.x, base.uiBehaviour.mEffectPool.TplPos.y - (float)((this._doc.EffectListId.Count + 1) * base.uiBehaviour.mEffectPool.TplHeight / 2), base.uiBehaviour.mEffectsMore.transform.localPosition.z); + bool flag = this._doc.EffectAllListId.Count == this._doc.EffectListId.Count; + if (flag) + { + base.uiBehaviour.mEffectsRedpoint.SetVisible(false); + } + else + { + base.uiBehaviour.mEffectsRedpoint.SetVisible(true); + } + } + + private void InitLeftMenu() + { + base.uiBehaviour.mModePool.ReturnAll(false); + string value = XSingleton.singleton.GetValue("PhotoShowName"); + string[] array = value.Split(new char[] + { + '|' + }); + this._mode_go.Clear(); + base.uiBehaviour.mModeBack.spriteHeight = base.uiBehaviour.mModePool.TplHeight * array.Length; + for (int i = 0; i < array.Length; i++) + { + GameObject gameObject = base.uiBehaviour.mModePool.FetchGameObject(false); + int num = (i % 2 == 0) ? 1 : -1; + int num2 = base.uiBehaviour.mModePool.TplHeight / 2; + gameObject.transform.localPosition = new Vector3(base.uiBehaviour.mModePool.TplPos.x, base.uiBehaviour.mModePool.TplPos.y + (float)(num * ((i + 1) / 2) * base.uiBehaviour.mModePool.TplHeight), base.uiBehaviour.mModePool.TplPos.z); + IXUILabel ixuilabel = gameObject.transform.Find("option1/Name").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(array[i]); + IXUICheckBox ixuicheckBox = gameObject.transform.Find("option1/Normal").GetComponent("XUICheckBox") as IXUICheckBox; + ixuicheckBox.RegisterOnCheckEventHandler(new CheckBoxOnCheckEventHandler(this.OnModeChanged)); + ixuicheckBox.ID = (ulong)((long)i); + ixuicheckBox.bChecked = true; + this._check_index.Add((uint)i); + this._mode_go.Add(gameObject); + } + this.OnRefreshEffects(); + } + + private void InitDance() + { + base.uiBehaviour.mDancePool.FakeReturnAll(); + this._dance_num = 0; + int num = 0; + for (int i = 0; i < XDanceDocument.Doc.SelfConfigData.Count; i++) + { + DanceConfig.RowData danceConfig = XDanceDocument.GetDanceConfig(XDanceDocument.Doc.SelfConfigData[i].motionID); + bool flag = danceConfig != null && XDanceDocument.Doc.IsUnlock(XDanceDocument.Doc.SelfConfigData[i].valid, danceConfig.Condition); + if (flag) + { + this._dance_num++; + } + } + float num2 = (this._dance_num > 8) ? 8.5f : ((float)this._dance_num); + base.uiBehaviour.mDanceBack.spriteHeight = (int)((float)base.uiBehaviour.mModePool.TplHeight * num2) + 30; + base.uiBehaviour.mDanceBackSV.SetSize((float)base.uiBehaviour.mDanceBack.spriteWidth, (float)base.uiBehaviour.mModePool.TplHeight * num2); + for (int j = 0; j < XDanceDocument.Doc.SelfConfigData.Count; j++) + { + DanceConfig.RowData danceConfig2 = XDanceDocument.GetDanceConfig(XDanceDocument.Doc.SelfConfigData[j].motionID); + bool flag2 = danceConfig2 != null && XDanceDocument.Doc.IsUnlock(XDanceDocument.Doc.SelfConfigData[j].valid, danceConfig2.Condition); + if (flag2) + { + GameObject gameObject = base.uiBehaviour.mDancePool.FetchGameObject(false); + gameObject.transform.parent = base.uiBehaviour.mDanceBackList.gameObject.transform; + IXUILabel ixuilabel = gameObject.transform.Find("Name").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(danceConfig2.MotionName); + IXUICheckBox ixuicheckBox = gameObject.transform.Find("Normal").GetComponent("XUICheckBox") as IXUICheckBox; + ixuicheckBox.RegisterOnCheckEventHandler(new CheckBoxOnCheckEventHandler(this.OnAnimChanged)); + ixuicheckBox.ID = (ulong)danceConfig2.MotionID; + num++; + } + } + base.uiBehaviour.mDancePool.ActualReturnAll(false); + base.uiBehaviour.mDanceBackList.Refresh(); + } + + public bool IsInReadyScreenShowView() + { + bool flag = !base.IsLoaded() || !base.IsVisible(); + return !flag && base.uiBehaviour.mDoScreenShot.IsVisible(); + } + } +} -- cgit v1.1-26-g67d0