public int ConfirmPurchase(string productId) { //Debug.Log("█ [ConfirmPurchase]" + productId); if (productId != null) { var product = _storeController.products.WithID(productId); if (product != null) { if (_storeController.products.WithID(productId).hasReceipt) { _storeController.ConfirmPendingPurchase(_storeController.products.WithID(productId)); SoundsSystem.play(Sound.S_RUBINS_BUY); return(0); } printLog("ConfirmPurchase: Hasn't Receipt"); // ошибка покупки, нету ордера / заказа. Неправильно выбран продукт Errors.showError(Errors.TypeError.EP_ON_FAILED_CONFIRM_PURCHASE); return(-1); } printLog("ConfirmPurchase: Hasn't product: " + productId); // ошибка покупки, нет товара Errors.showError(Errors.TypeError.EP_ON_FAILED_CONFIRM_PURCHASE); return(-1); } printLog("ConfirmPurchase: product is empty"); // ошибка покупки продукт пустой. Errors.showError(Errors.TypeError.EP_ON_FAILED_CONFIRM_PURCHASE); return(-1); }
static SimpleWaveEffect ballsWave; // переменная которая хранит в себе эту волну static void onAureolsHide(BaseEffect effect) { GameObject[] tBalls = GameObject.FindGameObjectsWithTag("ticketBall"); ballsWave = Effects.addSimpleWave(new Vector2(0.0f, 0.0f), tBalls, onWaveGameObject, 3f, 8.0f); // V# запуск волны ballsWave.subscribeOnEffectDone(onWaveDone); SoundsSystem.play(Sound.S_DISAPEAR); }
void Start() { /////////////////// test ////////////////////// //Errors.onServerError(Api.ServerErrors.E_VERSION_ERROR); //return; ///////////////////////////////////////////////// line1 = transform.FindChild("L1").GetComponent <SpriteRenderer>(); line2 = transform.FindChild("L2").GetComponent <SpriteRenderer>(); morda = transform.FindChild("morda").GetComponent <SpriteRenderer>(); var flying1 = line1.gameObject.AddComponent <Flying>(); var flying2 = line2.gameObject.AddComponent <Flying>(); flyingM = morda.gameObject.AddComponent <Flying>(); flying1.init(new Vector2(0.0f, flying1.transform.position.y), 0.05f); flying2.init(new Vector2(0.0f, flying2.transform.position.y), 0.05f); flying1.destroyOnArrive = false; flying2.destroyOnArrive = false; flyingM.destroyOnArrive = false; label = transform.FindChild("label").GetComponent <SpriteRenderer>(); morda.color = new Color(1.0f, 1.0f, 1.0f, 0.0f); label.color = new Color(1.0f, 1.0f, 1.0f, 0.0f); startTime = Time.time; s = 0.5f - startFrom; SoundsSystem.play(Sound.S_LOGO); }
public void playAnimNeedMore(VisualValuesType typeT) { PushDownButton target = null; DigitsLabel targetD = null; MAIN main = MAIN.getMain; switch (typeT) { case VisualValuesType.VVT_MONEY: { target = moneyBtn; targetD = main.money; } break; case VisualValuesType.VVT_RUBINS: { target = rubinsBtn; targetD = main.rubins; } break; case VisualValuesType.VVT_XP: { target = expBtn; /* EXP! */ } break; default: { if (MAIN.IS_TEST) { Errors.show("Неизвестный тип отображаемых значений HUD-a:" + typeT); } } return; } SoundsSystem.play(Sound.S_NEED_MORE_FUNDS); if (target.GetComponent <Scaling>() != null) { return; } Utils.increaseOrder(target.transform, changeOrderValueForNeedMoreButton); var scalingAnim = Scaling.set(target.gameObject, 1.3f, 1.5f, 1); scalingAnim.subscribeOnScalingFinish(onNeedMoreScalingAnim); ChangeColor.set(targetD.transform, new Color(1.0f, 0.0f, 0.0f, 1.0f), 0.25f, true, 6); _isPlaingAnim = true; }
// Событие по прибитию монетки к конечной цели (подпись в функции выше). Издаётся звук, удаляется монетка // ███ !!! необходима оптимизация, создания пула монет, в котором они не будут удалятся, а прятатся и вторично использоваться, нежели каждый раз удаляться и создаваться... void onCoinArrive(GameObject coinGO) { Coin coin = coinGO.GetComponent <Coin>(); if (coin != null && dlTo != null) { dlTo.addValue(coin.value); SoundsSystem.play(Sound.S_COIN, dlTo.transform.position); } }
public static WarningWindow showWarningWindow() { var warningWindowPrefab = RESOURCES.getPrefab("WarningBuyWindow"); GameObject warningWindowCanvasGO = GameObject.Instantiate(warningWindowPrefab) as GameObject; warningWindowCanvasGO.name = "WarningWindow"; SoundsSystem.play(Sound.S_ERROR); warningWindow = warningWindowCanvasGO.transform.FindChild("WarningWindow").GetComponent <WarningWindow>(); ScenesController.updateGetActualInputLayer(); return(warningWindow); }
public void setPreWins(JsonHandler.PreWin[] preWins) // отмечание превина { if (preWins != null) { for (int i = 0; i < preWins.Length; i++) { markCells(main.templatesHolder.getTicketPositionsByCategoryID(preWins[i].C, preWins[i].T), TicketCell.TypeMark.PREWIN, preWins[i].P); } SoundsSystem.play(Sound.S_PRE_WIN); } }
void selectBtn(BaseController btn) { //print(111); SoundsSystem.play(Sound.S_RADIO_BUTTON); if (selectedSprite != null) { btn.GetComponent <SpriteRenderer>().sprite = selectedSprite; } unselect(); //selectedButtonNum = int.Parse( btn.name ); selectedButton = btn; sendEvents(btn); }
// Событие нажатия мыши public override bool onMouseDown() { bool onConroller = base.onMouseDown(); if (onConroller) { value = !value; SoundsSystem.play(Sound.S_CHECK_BUTTON); //for (int i = 0; i < callBacks.Count; i++) // callBacks[i](this, TypeEvent.ON_MOUSE_DOWN); } return(onConroller); }
public static ErrorWindow showError(string text, TypeError typeError_, params string[] btnText) { //Debug.Log("Error! \"" + text + "\", from game scene:" + typeError_.ToString() + Application.stackTraceLogType); //Application.RegisterLogCallback(HandleLog); //Application.logMessageReceived //var resourses = RESOURCES.getResources; var errorWindowPrefab = RESOURCES.getPrefab("ErrorWindow"); GameObject errorWindowCanvasGO = GameObject.Instantiate(errorWindowPrefab) as GameObject; errorWindowCanvasGO.name = "ErrorWindowCanvas"; errorWindow = errorWindowCanvasGO.transform.FindChild("ErrorWindow").GetComponent <ErrorWindow>(); errorWindow.init(text, typeError_, btnText); Utils.screenShot("OnError.png"); // только в режиме тестировки SoundsSystem.play(Sound.S_ERROR); return(errorWindow); }
// При прохождении волны по текущему билету, начинает проигрывать анимацию и маштабирование static void onWaveTicket(GameObject waveGO) { Animator anim = waveGO.GetComponent <Animator>(); if (anim != null) { anim.enabled = true; SoundsSystem.play(Sound.S_TICKET_TURN, waveGO.transform.position); } var s = Scaling.set(waveGO, 0.85f, 0.8f, 1); s.setWithOutReturedAnim(); for (int i = 0; i < waveGO.transform.childCount; i++) { waveGO.transform.GetChild(i).gameObject.SetActive(false); //var cs = Scaling.set(waveGO.transform.GetChild(i).gameObject, new Vector3(0.0f, 1.0f, 1.0f), 0.5f, 1); //cs.setWithOutReturedAnim(); } }
int countCllisionWithBalls = 0; // количество столкновений об другой шар или же об челюсть дракона void OnCollisionEnter2D(Collision2D collision) { if (tag != "ReceivingTrayBall") { return; } //print("[OnCollisionEnter] #ball:"+number); foreach (ContactPoint2D contact in collision.contacts) { //Debug.DrawRay(contact.point, contact.normal, Color.white); Ball ball = contact.collider.gameObject.GetComponent <Ball>(); if (ball != null || contact.collider.gameObject.name == "DecorHead") { //prevVelocity[0] = GetComponent<Rigidbody2D>().velocity; if (countCllisionWithBalls++ == 0) // если удар этого шара с другим шаром впервые! { if (callBack != null) { callBack(this); } } else { prevVelocity[0] = GetComponent <Rigidbody2D>().velocity * 0.4f; // умышленное уменьшение скорости в истории, для уменьшение звучания вторичных ударов шаров между собой } var ba = SoundsSystem.play(Sound.S_BALL_KICK, transform.position); if (ba != null) { var aS = ba.GetComponent <AudioSource>(); aS.pitch = 0.5f + main.receivingTray.getCountBallsInTray() * 0.03f; aS.volume = prevVelocity[0].magnitude / 10.0f;//getVolumeByState(); } //print("Velocity Ball #" + number + " ==" + prevVelocity[0] + " magnitude:"+ prevVelocity[0].magnitude+ " VOLUME:"+ aS.volume); setState(BallState.ALIGNING); aligned = false; } } //audio.Play(); }
// █ Необходимые операции при покидании модуля ( возможно стоило бы использовать эвентовую систему и ловить события в тех модулях где нужно выполнить соответственные действия для них, на месте... Но уж так.. собрано всё здесь static void onLeaveCurrentScene() { MAIN main = MAIN.getMain; main.message.Clear(); var _this = ScenesController.getScenesController; switch (currentScene) { case GameScene.UNDEF: return; case GameScene.START_LOGO: return; // hide LOGO; case GameScene.AUTORIZATION: { _this._hideModule(_this.autorization); SoundsSystem.getSoundSystem.init(); if (SoundsSystem.musikOn) { SoundsSystem.play(Sound.S_MUSICK); } //main.message.Clear(); } break; case GameScene.MAIN_MENU: _this._hideModule(_this.mainMenu); break; case GameScene.BUY_TICKETS: { _this._hideModule(_this.buyTickets); } break; case GameScene.RAFFLE: { _this._hideModule(_this.raffle); HUD.showTop(); HUD.hideBuyBallBtn(); HUD.showBuyRubins(); } break; } }
public override bool onMouseDown() { SoundsSystem.play(Sound.S_BUTTON, transform.position); return(base.onMouseDown()); }
public override bool onClick() { SoundsSystem.play(Sound.S_CHECK_BUTTON); return(true); }
// Вызывается когда звёздочка прилетает на билет. Запускается логика отмечания этого шара, проверка на наличие вина или превина, и их отмечание void onBallArrive(GameObject flingGO, GameObject ticketCell) { var f = flingGO.GetComponent <Flying>(); if (f == null) { return; } GameObject fromGO = f.getStartFlyFromGameObject(); if (ticketCell == null) { return; } Ball ball = fromGO.GetComponent <Ball>(); if (ball == null) { print("Error! ball == null, fromGO.name:" + fromGO.name); } var tC = ticketCell.GetComponent <TicketCell>(); var t = tC.getMyTicket(); tC.mark(TicketCell.TypeMark.PRESENT); float transformTime = 1.0f; // #V общее значение времени для затухания звезды и появления шара(используется чуть ниже) Flickering.stop(flingGO, true); var fade = Effects.addFade(flingGO, transformTime); // #V исчезновение звезды fade.subscribeOnEffectDone(onFadeStar); // для удаления звезды, после её исчезновения SoundsSystem.play(Sound.S_STAR_TRANSFORM, ticketCell.transform.position); var tb = ticketCell.transform.FindChild("ticketBall"); if (tb != null) { Effects.addFade(tb.gameObject, transformTime, false); // #V появление шара } if (main.gameMode != GameMode.SERVER) { // (по факту не используется) bool isHaveLine = t.checkOnWin(tC); if (isHaveLine) { t.setPreWinsTest(); //main.updateWinMoney(); } } else { // проверка на наличие превинов и винов, и соответственном маркеровании клеток if (ball.jsonBallInfo.T == null) { return; } int myIndex = getMyIndex(t, ball); if (myIndex == -1) { return; } JsonHandler.WinTickets tPWin = ball.jsonBallInfo.T[myIndex]; var ticket = main.ticketHolder.getTicket(tPWin.N); if (tPWin.P != null) { ticket.setPreWins(tPWin.P); Tutorial.show(TutorialSubject.TS_PREVIN); } if (tPWin.W != null && tPWin.W.Length > 0) { ticket.setWins(tPWin.W); } main.templatesHolder.updateExpectedWinByNewPrewinsAndWins(tPWin.P, tPWin.W); } }
public override bool onMouseDown() { //AudioSource.PlayClipAtPoint(MAIN.getMain.getResources().buttonPushSound, transform.position); SoundsSystem.play(Sound.S_BUTTON); return(base.onMouseDown()); }
} // открыта ли полностью челюсть? public static void openMore() // ███ приоткрыть челюсть сильнее ( с каждым докупленным дополнительным шаром, позиции приоткрывания равномерно разбиваются от максимально доступного количества шаров, указанных в MAIN ) потому менняя их количество на сервере нужно всегда менять их и там { dragonHead.jaw.setNextState(); Flickering.set(dragonHead.eye.gameObject, 0.35f, 1); // V# мигание глаза при докупке шара SoundsSystem.play(Sound.S_DRAGON, dragonHead.transform.position); }
public static void openFull() // открыть челюсть полностью ( шары начнут сыпаться ) { dragonHead.jaw.setLastState(); Flickering.set(dragonHead.eye.gameObject, 0.5f, 11); // V# мигание глаза при выплёвывании шаров SoundsSystem.play(Sound.S_DRAGON_FULL, dragonHead.transform.position); }