using System; using System.Collections; using System.Collections.Generic; using System.Linq; using Cute; using UnityEngine; using Wizard; using Wizard.UI.Dialog.ImageSelection; public class DialogBase : MonoBehaviour { public enum DialogScene { OPEN, WAIT, CLOSE, END, ERASE } public enum Size { S, M, L, XL, BATTLE_LOG } public enum ButtonLayout { NONE, OkBtn, DecisionBtn, CloseBtn, BackToTitleBtn, GrayBtn, RedBtn, YellowBtn, BlueBtn_CancelBtn, RedBtn_CancelBtn, BlueBtn_GrayBtn, BlueBtn_RedBtn, GrayBtn_GrayBtn, BlueBtn_RedBtn_GrayBtn, GrayBtn_CancelBtn_BlueBtn, GrayBtn_GrayBtn_BlueBtn, BattleEvolveConfirm, BlueButton, BlueButton_BlueButton, BlueButton_BlueButton_BlueButton } private enum ButtonSprite { BLUE, GRAY, RED, YELLOW, BLUE_S, RED_S } public enum ButtonType { Blue, Red, Gray, Yellow, OK, Decision, Close, Cancel, Retry, BackToTitle, BackToHome, QuitApplication, VersionUp, RecommendedList } private class UIPanelAlphaController { private UIPanel _panel; private float _originalAlpha; public UIPanelAlphaController(UIPanel panel) { _panel = panel; _originalAlpha = _panel.alpha; } public void SetAlpha(float alpha) { _panel.alpha = alpha; } public void ResetAlpha() { _panel.alpha = _originalAlpha; } } public enum KeyboardDialogSelect { Button1, Button2, Button3, CloseButton } private class Button { private ButtonType Type { get; set; } public ButtonSprite Sprite { get; private set; } public string Text { get; private set; } public Se.TYPE SE { get; private set; } public Action OnClick { get; private set; } public Action OnDestroy { get; private set; } public Button(ButtonType type, string text) { Type = type; SystemText systemText = Data.SystemText; switch (type) { case ButtonType.Blue: Sprite = ButtonSprite.BLUE; SE = Se.TYPE.SYS_BTN_DECIDE; break; case ButtonType.Red: Sprite = ButtonSprite.RED; SE = Se.TYPE.SYS_BTN_DECIDE; break; case ButtonType.Gray: Sprite = ButtonSprite.GRAY; SE = Se.TYPE.SYS_BTN_CANCEL; break; case ButtonType.Yellow: Sprite = ButtonSprite.YELLOW; SE = Se.TYPE.SYS_BTN_DECIDE; break; case ButtonType.OK: Sprite = ButtonSprite.BLUE; Text = systemText.Get("Common_0004"); SE = Se.TYPE.SYS_BTN_DECIDE; break; case ButtonType.Decision: Sprite = ButtonSprite.BLUE; Text = systemText.Get("Common_0003"); SE = Se.TYPE.SYS_BTN_DECIDE; break; case ButtonType.Close: Sprite = ButtonSprite.GRAY; Text = systemText.Get("Common_0008"); SE = Se.TYPE.SYS_BTN_CANCEL; break; case ButtonType.Cancel: Sprite = ButtonSprite.GRAY; Text = systemText.Get("Common_0005"); SE = Se.TYPE.SYS_BTN_CANCEL; break; case ButtonType.Retry: Sprite = ButtonSprite.BLUE; Text = systemText.Get("Common_0133"); SE = Se.TYPE.SYS_BTN_DECIDE; OnClick = delegate { UIManager.GetInstance().StartCoroutine(Toolbox.NetworkManager.Retry()); }; NetworkUI.GetInstance().SetKeepLastRequest(flag: true); OnDestroy = delegate { NetworkUI.GetInstance().SetKeepLastRequest(flag: false); }; break; case ButtonType.BackToTitle: Sprite = ButtonSprite.GRAY; Text = systemText.Get("Common_0131"); SE = Se.TYPE.SYS_BTN_CANCEL_TRANS; OnClick = delegate { SoftwareReset.exec(); }; break; case ButtonType.BackToHome: Sprite = ButtonSprite.GRAY; Text = systemText.Get("Common_0132"); SE = Se.TYPE.SYS_BTN_CANCEL_TRANS; OnClick = delegate { UIManager.GetInstance().closeInSceneCenterLoading(); if (UIManager.GetInstance().GetCurrentScene() == UIManager.ViewScene.Battle && GameMgr.GetIns().GetBattleCtrl() != null) { UIManager.GetInstance().StartCoroutine(BattleEndCoroutine()); } else { UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.MyPage); } }; break; case ButtonType.QuitApplication: Sprite = ButtonSprite.GRAY; Text = systemText.Get("Common_0135"); SE = Se.TYPE.SYS_BTN_CANCEL; OnClick = delegate { if (Toolbox.mute != null) { Toolbox.mute.Close(); Toolbox.mute = null; } UIManager.ApplicationQuit(); }; break; case ButtonType.VersionUp: Sprite = ButtonSprite.BLUE; Text = systemText.Get("Common_0136"); SE = Se.TYPE.SYS_BTN_DECIDE; OnClick = delegate { Toolbox.NetworkManager.GoToStore(); }; NetworkUI.GetInstance().SetKeepLastRequest(flag: true); break; case ButtonType.RecommendedList: Sprite = ButtonSprite.BLUE; Text = systemText.Get("Common_0134"); SE = Se.TYPE.SYS_BTN_DECIDE; OnClick = delegate { UIManager.GetInstance().WebViewHelper.CreateOpenURLWindow(WebViewHelper.UrlType.RECOMMENDED_DEVICE); }; break; } if (text != null) { Text = text; } } private IEnumerator BattleEndCoroutine() { yield return null; SBattleLoad battleLoad = BattleManagerBase.GetIns().SBattleLoad; while (!battleLoad.isLoadEnd) { yield return null; } yield return GameMgr.GetIns().GetBattleCtrl().BattleEnd(); UIManager.ChangeViewSceneParam changeViewSceneParam = new UIManager.ChangeViewSceneParam(); changeViewSceneParam.OnChange = delegate { UIManager.GetInstance().CloseInSceneLoadingBattle(); }; UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.MyPage, changeViewSceneParam); } } private const int ONE_BUTTON_1BUTTON_LEFT_ANCHOR = -128; private const int ONE_BUTTON_1BUTTON_RIGHT_ANCHOR = 128; private const int TWO_BUTTON_1BUTTON_LEFT_ANCHOR = 8; private const int TWO_BUTTON_1BUTTON_RIGHT_ANCHOR = 264; private const int TWO_BUTTON_2BUTTON_LEFT_ANCHOR = -264; private const int TWO_BUTTON_2BUTTON_RIGHT_ANCHOR = -8; private const int THREE_BUTTON_1BUTTON_LEFT_ANCHOR = -128; private const int THREE_BUTTON_1BUTTON_RIGHT_ANCHOR = 128; private const int THREE_BUTTON_2BUTTON_LEFT_ANCHOR = -398; private const int THREE_BUTTON_2BUTTON_RIGHT_ANCHOR = -142; private const int THREE_BUTTON_3BUTTON_LEFT_ANCHOR = 142; private const int THREE_BUTTON_3BUTTON_RIGHT_ANCHOR = 398; private const int WEBVIEW_ANCHOR_LEFT = 6; private const int WEBVIEW_ANCHOR_BOTTOM = 18; private const int WEBVIEW_ANCHOR_RIGHT = -6; private const int WEBVIEW_ANCHOR_TOP = -17; private const float START_ALPHA = 0.01f; public const float BACKVIEW_ALPHA = 0.8f; private const float OPEN_TIME = 0.3f; public const int DELTA_PANEL_DEPTH = 5; public static readonly Vector3 BATTLELOG_TITLELABEL_POS = new Vector3(0f, 16f, 0f); public static readonly Vector3 BATTLELOG_WINDOWSPRITE_POS = new Vector3(-250f, 0f, 0f); private const int BATTLELOG_WINDOW_W = 600; private const int BATTLELOG_WINDOW_H = 600; private const int FAQ_DEAPTH = 6100; public const int FRIEND_DIALOG_DEPTH = 1000; public const int ERROR_DIALOG_BATTLE = 5000; public const int ERROR_DIALOG_MATCHING_DEPTH = 5400; public const int ERROR_DIALOG_DEPTH = 5500; public const int ERROR_ASSETHANDLE_DIALOG_DEPTH = 6000; public const int HOME_LOGIN_BONUS_DEPTH = 10; public const int HOME_BATTLE_RESULT_DEPTH = 15; public const int QUIT_DIALOG_DEPTH = 7000; public const int GATHERING_STATE_CHANGE_DIALOG_DEPTH = 4000; public const int SCROLL_BOTTOM_ANCHOR_WINDOW = 8; public const int SCROLL_BOTTOM_ANCHOR_BUTTON_LINE = -2; private const int WEBVIEW_DISPLAY_MARGIN = 35; private const int WEBVIEW_Y_OFFSET = 2; private const string spriteButtonBlue = "btn_common_02_m_off"; private const string spriteButtonBluePush = "btn_common_02_m_on"; private const string spriteButtonGray = "btn_common_01_m_off"; private const string spriteButtonGrayPush = "btn_common_01_m_on"; private const string spriteButtonRed = "btn_common_04_m_off"; private const string spriteButtonRedPush = "btn_common_04_m_on"; private const string spriteButtonYellow = "btn_common_03_m_off"; private const string spriteButtonYellowPush = "btn_common_03_m_on"; private const string spriteButtonRed_S = "btn_common_04_s_off"; private const string spriteButtonRedPush_S = "btn_common_04_s_on"; private const string spriteButtonBlue_S = "btn_common_02_s_off"; private const string spriteButtonBluePush_S = "btn_common_02_s_on"; [HideInInspector] public NguiObjs InputAreaObjs; [SerializeField] public UISprite WindowSprite; [SerializeField] private UIButton CloseButton; [SerializeField] private GameObject TitleObjs; [SerializeField] private UILabel titleLabel; [SerializeField] private GameObject backViewOriginal; [HideInInspector] public GameObject backView; [SerializeField] private GameObject _collider; [SerializeField] private UIPanel _colliderPanel; private float _colliderUpdateTimer; private bool _colliderUpdateEnable; [SerializeField] private UILabel DetailMsg; [SerializeField] private GameObject ButtonBase; [SerializeField] public UIButton button1; [SerializeField] private UILabel button1_Label; [SerializeField] private UIButton button2; [SerializeField] private UILabel button2_Label; [SerializeField] private UIButton button3; [SerializeField] private UILabel button3_Label; [SerializeField] private UIButton contactButton; [SerializeField] private UILabel contactButton_Label; [SerializeField] private UIButton webviewBackButton; [SerializeField] private UISprite buttonLine; [SerializeField] public UISprite titleLine; [SerializeField] private UIRect scrollRect; [SerializeField] private UIRect scrollBarRect; [SerializeField] private UISlider vScrollBar; [SerializeField] private UIScrollView scrollView; [SerializeField] public GameObject EscapeDialogPrefab; [SerializeField] private GameObject _button1Select; [SerializeField] private GameObject _button2Select; [SerializeField] private GameObject _button3Select; [SerializeField] private GameObject _closeButtonSelect; private DialogScene dialogNowScene; private ButtonLayout dialogLayout; private static Vector2[] Sizes = new Vector2[5] { new Vector2(624f, 360f), new Vector2(850f, 564f), new Vector2(1080f, 504f), new Vector2(1125f, 605f), new Vector2(600f, 600f) }; private static int[] DETAIL_LABEL_SIZE = new int[5] { 540, 766, 996, 1041, 516 }; private GameObject returnObj; private string returnMsg_Btn1; private string returnMsg_Btn2; private string returnMsg_Btn3; public Action OnCloseStart; public Action OnClose; private Action OnClose_ForSystem; public Action onPushButton1; public Action onPushButton2; public Action onPushButton3; public Action onCloseWithoutSelect; private Action onFirstUpdate; private string closeMsg; private float timer; private bool isOpenAnim = true; public bool isNotCloseWindowButton1; public bool isNotCloseWindowButton2; public bool isNotCloseWindowButton3; private int _buttonNum; private List