public static int updateGetActualInputLayer() // █ обновление слоя маски тачей, по факту имеющихся активных окон { int res = defaultInputLayer; //(int)InputLayer.TM_DEFAULT; // окна отсутствует, игровая маска if (Errors.isShowing()) { res = 0; // █ окна ошибок построены на новой UI системе, где есть своя обработка тачей, потому маска отключается //InputLayer.TM_POP_UP_WINDOW; } else if (WaitingServerAnsver.isShowing()) { res = 0; // игровой тачь отключен } else if (Tutorial.isShowing()) { res = LayerMask.GetMask("Tutorial"); //print("Tutorial!"); } // показано обущающее сообщение, маска берётся из списка масок заданых в редакторе Unity else if (WindowController.getWinController.isWindowShow()) { res = popUpWindowLayer; //(int)InputLayer.TM_ZERO; // отображается вспвлывающее окно } getScenesController._actualInputLayer = res; //print("█ updateGetActualInputLayer == "+ res); return(res); }
public bool ApiRequest(string cmd, string payload) { ulong id = 0; if (MAIN.getMain.applicationID != "") { id = Api.Proto.RequestId(Api.Proto.LowerPartOfRequestId(MAIN.getMain.applicationID), ++_msgId, rand); if (id == 0) { Debug.Log("Error: request id is null"); return(false); } } var msg = Api.Proto.RequestMessage(cmd, id, payload); if (msg != null) { if (!_sender.HasMessage(msg)) { _sender.Enqueue(msg); WaitingServerAnsver.show(cmd); return(true); } Debug.Log("Error: message in queue"); return(false); } Debug.Log("Error: message is null"); return(false); }
public void Respond(string payload) { if (payload == null) { debugPrint("[Respond] payload == null"); } if (OnRespond == null) { debugPrint("[Respond] OnRespond == null"); } WaitingServerAnsver.hide(); OnRespond(this, new RespondEventArgs(payload)); }
public int prevInputLayer = 0; // █ предведущий слой/маска тачей запоминается для востановления предведущего слоя после сокрытия фрейма // показать фрейм public static void show(string requestType = "") { if (countRequests < 0) { Errors.showTest("Предупреждение счётчик ожиданий ответов от сервера меньше нуля!"); countRequests = 0; } countRequests++; // увеличиваем счётчик запросов от клиента if (waitingServerAnsver == null) { GameObject waitingServerAnsverGO = GameObject.Find("WaitingServerAnsver"); if (waitingServerAnsverGO == null) { if (waitingServerAnsverPrefab == null) { waitingServerAnsverPrefab = RESOURCES.getPrefab("WaitingServerAnsver"); } waitingServerAnsverGO = GameObject.Instantiate(waitingServerAnsverPrefab) as GameObject; waitingServerAnsverGO.name = "WaitingServerAnsver"; DontDestroyOnLoad(waitingServerAnsverGO); } waitingServerAnsver = waitingServerAnsverGO.GetComponent <WaitingServerAnsver>(); waitingServerAnsver.gameObject.SetActive(false); } if (callShowTime == 0) { callShowTime = Time.time; } /*if (throughTime > 0 && showThroughTime == 0) { * showThroughTime = throughTime; * callShowTime = Time.time; * return; * }*/ waitingServerAnsver.gameObject.SetActive(true); // █ изменение слоя /*if (MAIN.getMain.actualInputLayer != 0) { * waitingServerAnsver.prevInputLayer = MAIN.getMain.actualInputLayer; * MAIN.getMain.actualInputLayer = 0; * }*/ ScenesController.updateGetActualInputLayer(); // █ проверка на нарушение последовательсноти запросов if (countRequests > 1) { Errors.showTest("Количество запросов больше 1!(второй запрос:" + requestType + "). сообщите разработчикам. Приложение должно подвиснуть"); } }
public void Error(ErrorType type, string msg) { WaitingServerAnsver.hide(true); this.OnError(this, new ErrorEventArgs(type, msg)); //Errors.showError(Errors.TypeError.ES_CONNECT_ERROR); }
/////////////////////////////////////////////// // внутрение функции static bool show(List <TutorialSubject> listSubjects) // показать сообщение или очередь сообщений (внутреняя функция!) { if (!MAIN.isTutorialEnable) { queueTutorialsSubject.Clear(); return(false); } if (queueTutorialsSubject.Count == 0) { return(false); } Debug.Log("█ список для отображения обучения обновлён: ========================"); for (int i = 0; i < listSubjects.Count; i++) { Debug.Log(" обучающая тема в списке №" + i + ": " + listSubjects[i]); } TutorialSubject subject = queueTutorialsSubject[0]; if (Errors.isShowing() || WaitingServerAnsver.isShowing()) { return(false); } if (isShowing()) { return(false); } WritingText wt = null; switch (subject) { case TutorialSubject.TS_ENTER_IN_ROOM: { var targetT = GameObject.Find("playBtn").transform; frame.setTarget(targetT.gameObject, true); wt = WritingText.create("Нажмите для начала игры.", new Vector2(targetT.position.x, targetT.position.y - 3.5f), new Vector2(530.0f, 200.0f), 0.05f); } break; case TutorialSubject.TS_CHOOSE_COUNT_TICKETS: { GameObject ticketsButtonsGO = GameObject.Find("CountTicketsButtons"); if (ticketsButtonsGO == null) { Errors.showTest("<< TestError >> Не найдены кнопки radioButton(а)"); return(false); } //var targetT = ticketsButtonsGO.transform.GetChild(3); frame.setTarget(ticketsButtonsGO, true); wt = WritingText.create("Выбирете количество билетов в розыгрыше.\nНажмите для выбора.", new Vector2(ticketsButtonsGO.transform.position.x, ticketsButtonsGO.transform.position.y - 2.7f), new Vector2(900.0f, 300.0f)); } break; case TutorialSubject.TS_BUY_TICKETS: { var targetT = GameObject.Find("buyTicketsBtn").transform; frame.setTarget(targetT.gameObject, true); wt = WritingText.create("Нажмите для покупки выбранных билетов.", new Vector2(targetT.position.x, targetT.position.y + 0.6f), new Vector2(800.0f, 200.0f), 0.035f); frame.hideImmeaiately = true; } break; case TutorialSubject.TS_TEMPLEATES: { if (WindowController.isShowing()) { WindowController.hideCurrentWindow(); } var targetT = GameObject.Find("TemplatesHolder").transform; frame.setTarget(targetT.gameObject); prevTimeScale = Time.timeScale; MAIN.setGameTimeSpeed(0.05f, 1.0f); wt = WritingText.create("Цветными точками показаны возможные комбинации выигрышей.\nНиже - ожидаемый выигрыш прямо сейчас.", new Vector2(targetT.position.x, targetT.position.y - 4.0f), new Vector2(1300.0f, 500.0f), 0.0035f); } break; case TutorialSubject.TS_PREVIN: { if (WindowController.isShowing()) { WindowController.hideCurrentWindow(); } var aureols = GameObject.FindGameObjectsWithTag("aureols"); var withOut = GameObject.FindGameObjectsWithTag("missingBall"); if (aureols.Length == 0) { Errors.showTest("Ошибка обучения, не найдены предвыиграшные шаблоны"); return(false); } GameObject[] targets = new GameObject[aureols.Length + withOut.Length]; for (int i = 0; i < aureols.Length; i++) { targets[i] = aureols[i].gameObject.transform.parent.gameObject; } for (int i = 0; i < withOut.Length; i++) { targets[i + aureols.Length] = withOut[i].gameObject; } //for (int i = 0; i < targets.Length; i++) frame.setTargets(false, targets); wt = WritingText.create("Обратите внимание на мигающий шар - именно его не хватает до заполнения линии и получения выигрыша!", new Vector2(0.0f, -4.0f), new Vector2(1050.0f, 300.0f), 0.025f); prevTimeScale = Time.timeScale; MAIN.setGameTimeSpeed(0.05f, 1.0f); } break; case TutorialSubject.TS_BUY_BALL: { //if (!HUD.getBuyBallButton().isActiveAndEnabled ) return false; if (HUD.isPlaingAnim()) { Debug.Log("█ HUD.isPlaingAnim()"); queueTutorialsSubject.Remove(TutorialSubject.TS_BUY_BALL); return(false); } if (WindowController.isShowing()) { WindowController.hideCurrentWindow(); } var targetT = GameObject.Find("buyBallBtn").transform; if (targetT == null) { queueTutorialsSubject.Remove(TutorialSubject.TS_BUY_BALL); return(false); } frame.setTarget(targetT.gameObject, true); wt = WritingText.create("Нажмите,чтобы испытать удачу\nи найти недостающие шары!)", new Vector2(targetT.position.x - 1.0f, Screen.height * 0.001f - 3.4f), new Vector2(650.0f, 200.0f), 0.025f); } break; case TutorialSubject.TS_BUY_GOLD_BTN: { if (WindowController.isShowing()) { WindowController.hideCurrentWindow(); } var targetT = GameObject.Find("moneyBtn").transform; frame.setTarget(targetT.gameObject, true); //frame.setScreenTouch( true ); wt = WritingText.create("Чтобы раздобыть еще золота - загляните в магазин", new Vector2(targetT.position.x + 2.0f, targetT.position.y + 0.5f), new Vector2(1200.0f, 300.0f), 0.05f); frame.dontShowTip = true; //Debug.Log("█ [in create] tipWasShow == " + frame.tipWasShow); } break; case TutorialSubject.TS_BUY_GOLD: { if (!wasShowed(TutorialSubject.TS_BUY_GOLD_BTN)) { queueTutorialsSubject.Remove(TutorialSubject.TS_BUY_GOLD_BTN); queueTutorialsSubject.Remove(TutorialSubject.TS_BUY_GOLD); return(false); } var goldBtns = GameObject.FindGameObjectsWithTag("exchangeGoldBtns"); if (goldBtns.Length == 0) { return(false); } var targetT = goldBtns[0].transform;; frame.setTarget(targetT.gameObject, true); wt = WritingText.create("Для покупки золота нужны\nкристаллы. Попробуйте", new Vector2(targetT.position.x, Screen.height * 0.001f + 2.5f), new Vector2(550.0f, 300.0f), 0.05f); } break; case TutorialSubject.TS_EXIT: { if (ScenesController.currentScene != GameScene.RAFFLE) { queueTutorialsSubject.Remove(TutorialSubject.TS_EXIT); Debug.Log("█ TS_EXIT когда не в розыгрыше"); for (int i = 0; i < queueTutorialsSubject.Count; i++) { Debug.Log("в очереди:[" + i + "]" + queueTutorialsSubject[i]); } return(show(queueTutorialsSubject)); } var targetT = GameObject.Find("backBtn").transform; frame.setTarget(targetT.gameObject, true); wt = WritingText.create("Нажмите,чтобы начать\nновый розыгрыш. Удачи вам!", new Vector2(targetT.position.x - 3.0f, targetT.position.y - 2.8f), new Vector2(550.0f, 400.0f), 0.04f); } break; case TutorialSubject.TS_TUTORIAL_REPEAT: { var targetT = GameObject.Find("settingsBtn").transform; frame.setTarget(targetT.gameObject, true); frame.setScreenTouch(true); wt = WritingText.create("Обучение завершенно! Повторный курс и\nпрочие возможности можно найти здесь.\nДля продолжения коснитесь екрана...", new Vector2(targetT.position.x + 4.0f, targetT.position.y - 3.0f), new Vector2(800.0f, 400.0f), 0.04f); } break; } if (wt != null) { wt.transform.SetParent(frame.transform); } //prevActualMask = MAIN.getMain.actualInputLayer; //MAIN.getMain.actualInputLayer = LayerMask.GetMask("Tutorial"); frame.mySubject = subject; frame.show(subject); ScenesController.updateGetActualInputLayer(); //------------[ save ]-------------- showedTutorialSubjectsMask |= (int)subject; PlayerPrefs.SetInt("showedTutorialSubjects", showedTutorialSubjectsMask); return(true); }