Пример #1
0
 TypePopUpWindow waitToShowWindow = TypePopUpWindow.NONE; // █ окно которое ожидается для отображения (возможно ожидается ответ от сервера)
 public static void requestContent(TypePopUpWindow type)  // █ запросить контент для окна (обычно приходит контент сразу для всех окон) контент сохраняется, потому окна при созданиях перед отправлением этого запроса туда заглядывают().
 {
     lastTimeRequest = Time.time;
     MarketEvent.requestMarketItems();
     //Debug.Log("█ запрос на получение данных, и ожидается открытие окна:" + type);
     getWinController.waitToShowWindow = type;
 }
Пример #2
0
 string getStringByType(TypePopUpWindow type)
 {
     switch (type)
     {
     case TypePopUpWindow.CRYSTALS_BUY: return("crystal");
     }
     //Debug.Log("Error![getStringByType] undifine type:" + type);
     return("");
 }
Пример #3
0
    PopUpWindow createAndShowWindow(TypePopUpWindow type) // █ создать и после показать окно
    {
        waitToShowWindow = TypePopUpWindow.NONE;
        //Debug.Log("[createAndShowWindow] type:" + type);
        GameObject wndGO = null;

        if (type == TypePopUpWindow.SETTINGS)
        {
            var obj = Resources.Load("prefabs/Settings");
            wndGO = GameObject.Instantiate(obj) as GameObject;
        }
        else
        {
            wndGO = GameObject.Instantiate(getResources().popUpWndPrefab);
        }


        wndGO.name = type.ToString();
        //Debug.Log(wndGO.name);
        //System.Type typeWnd = < PopUpWindow >;
        PopUpWindow wnd   = wndGO.GetComponent <PopUpWindow>();
        float       speed = wnd.speedMove;
        var         hPos  = wnd.hidePosition;
        var         sPos  = wnd.showPosition;

        if (type != TypePopUpWindow.SETTINGS)
        {
            GameObject.DestroyImmediate(wnd);
        }
        switch (type)
        {
        case TypePopUpWindow.GOLD_EXCHANGE: wnd = wndGO.AddComponent <BuyGoldWnd>(); break;

        case TypePopUpWindow.CRYSTALS_BUY: wnd = wndGO.AddComponent <BuyCrystalsWnd>(); break;

        case TypePopUpWindow.SETTINGS: { } break;

        default: wnd = wndGO.AddComponent <PopUpWindow>(); break;
        }
        wnd.speedMove    = speed;
        wnd.hidePosition = hPos;
        wnd.showPosition = sPos;
        if (type != TypePopUpWindow.SETTINGS)
        {
            wnd.content = wnd.createContent();
        }

        popUpWindows[type] = wnd;
        float txtH = wndGO.GetComponent <SpriteRenderer>().sprite.texture.height * 0.5f;

        wnd.hidePosition       = new Vector2(0.0f, -(txtH + Screen.height) * 0.01f);
        wnd.transform.position = new Vector3(0.0f, wnd.hidePosition.y, 0.0f);
        wnd.show();
        return(wnd);
    }
Пример #4
0
 public static void hideCurrentWindow()
 {
     if (showingWindow != TypePopUpWindow.NONE)
     {
         if (popUpWindows.ContainsKey(showingWindow))
         {
             popUpWindows[showingWindow].hide();
             showingWindow = TypePopUpWindow.NONE;
         }
     }
     //MAIN.getMain.actualInputLayer = MAIN.defaultLayer;
     ScenesController.updateGetActualInputLayer();
 }
Пример #5
0
    static TypePopUpWindow showingWindow = TypePopUpWindow.NONE;                                                     // отображаемое окно
    public static bool showPopUpWindow(TypePopUpWindow type, bool hideIfShowing = false)                             // показать окно. Последний параметр, (не актуально) спрячет окно если оно уже показывалось
    {
        var controller = WindowController.getWinController;

        if (!hideIfShowing || controller.getShowingWindow() != type)
        {
            return(controller._showPopUpWindow(type));
        }
        else
        {
            WindowController.hideCurrentWindow();
        }
        return(false);
    }
Пример #6
0
    void OnMarketEventRespound() // получения ответа от сервера
    {
        //Debug.Log("█ данные получил");
        MarketEvent marketEvent = GameObject.Find("Network").GetComponent <MarketEvent>();
        //marketEvent.response;
        //Debug.Log("[OnReady] in WindowController" + waitToShowWindow);
        var name = getStringByType(waitToShowWindow);

        crystalItems            = main.purchase.getMarketItesByName(name);
        goldFromCrystalExchange = getMarketEvent().response.data.Exchange;
        sortRubinItems();
        sortGoldItems();

        if (waitToShowWindow != TypePopUpWindow.NONE)
        {
            showingWindow = waitToShowWindow;
            Debug.Log("█ showingWindow == " + showingWindow);
            createAndShowWindow(showingWindow);
            //waitToShowWindow = TypePopUpWindow.NONE;
        }
    }
Пример #7
0
    public bool _showPopUpWindow(TypePopUpWindow type) // █ показать окно, если его нет, создать, если данных нет, запросить
    {
        hideCurrentWindow();
        //Debug.Log("[_showPopUpWindow]");
        //main.actualInputLayer = MAIN.popUpWindowLayer;
        PopUpWindow wnd = null;

        if (popUpWindows.ContainsKey(type))
        {
            wnd           = popUpWindows[type];
            showingWindow = type;
            wnd.show();
        }
        else
        {
            bool isPurchasingWind = type == TypePopUpWindow.CRYSTALS_BUY || type == TypePopUpWindow.GOLD_EXCHANGE;
            var  me = getMarketEvent();
            if (((me.response == null || me.response.data.Exchange.Length == 0 || me.response.data.Purchase.Length == 0)) &&
                isPurchasingWind)
            {
                requestContent(type);
                return(false);
            }
            else
            {
                if (!isPurchasingWind || crystalItems != null && goldFromCrystalExchange != null)
                {
                    showingWindow = type;
                    wnd           = createAndShowWindow(type);
                }
                else
                {
                    return(false);
                }
            }
        }

        //Debug.Log("█3 showingWindow:" + showingWindow);
        return(wnd != null);
    }