public async Task <bool> Create(string sku, string token) { HttpClient httpClient = new HttpClient(); try { HttpResponseMessage response; using (MultipartFormDataContent formData = new MultipartFormDataContent()) { formData.Add(new StringContent(sku), "sku"); formData.Add(new StringContent(token), "token"); response = await httpClient.PostAsync(NetworkGlobals.ValidatePurchaseUrl, formData); } if (!response.IsSuccessStatusCode) { throw new Exception("Статус ответа " + response.StatusCode); } } catch (Exception e) { UiSoundsManager.Instance().PlayError(); log.Error("Упало при скачивании модели " + e.Message + " " + e.StackTrace); return(false); } return(true); }
private IEnumerator StartAnimation() { if (ResourcesAccrualStorage.Instance.IsLootboxNeeded) { lootboxEcsController.ShowLootbox(); } else { lootboxEcsController.DisableItemsLeftMenu(); } DateTime delayTime = DateTime.UtcNow + maxWaitingTime; yield return(new WaitUntil(() => { return ResourcesAccrualStorage.Instance.ResourceModels != null || DateTime.UtcNow > delayTime; })); if (ResourcesAccrualStorage.Instance.ResourceModels != null) { lootboxEcsController.SetResourceModels(ResourcesAccrualStorage.Instance.ResourceModels); } else { UiSoundsManager.Instance().PlayError(); lootboxSceneSwitcher.LoadLobbyScene(); } }
public void Product_OnClick([NotNull] PurchaseModel purchaseModel) { UiSoundsManager.Instance().PlayClick(); log.Info($"{nameof(Product_OnClick)} {nameof(purchaseModel.productModel.Id)} {purchaseModel.productModel.Id}"); log.Info("Тип валюты " + purchaseModel.productModel.CostModel.CostTypeEnum); if (purchaseModel.productModel.IsDisabled) { textTooltip.Show("This product has already been purchased."); log.Info("Попытка купить недоступный товар."); return; } //Если покупка за реальную валюту, то вызвать api платёжной системы if (purchaseModel.productModel.CostModel.CostTypeEnum == CostTypeEnum.RealCurrency) { log.Info("Покупка за реальную валюту"); purchasingService.BuyProduct(purchaseModel); } else { log.Info("Показ окна подтверждения покупки"); //Если покупка за внутриигровую валюту, то показать меню подтверждения покупки lobbyEcsController.ShowPurchaseConfirmationWindow(purchaseModel); } }
private IEnumerator OpenAnimation(Action callback, Transform parent) { isOpened = true; UiSoundsManager.Instance().PlayLootbox(); yield return(new WaitForSeconds(0.2f)); closedBox.gameObject.SetActive(false); Transform transform1 = closedBox.transform; Vector3 position = transform1.position; Quaternion rotation = transform1.rotation; openedBox.gameObject.SetActive(true); yield return(new WaitForSeconds(0.1f)); Instantiate(effectPrefab, position, rotation, parent); float shakeDuration = 0.1f; CameraShake.myCameraShake.ShakeCamera(0.3f, shakeDuration); yield return(new WaitForSeconds(shakeDuration)); //Время задержки перед заменой лутбокса на ресурс yield return(new WaitForSeconds(1)); callback?.Invoke(); }
private void Awake() { lobbyLoaderController = GetComponent <LobbyLoaderController>(); // battleUiController = GetComponent<BattleUiController>(); uiSoundsManager = UiSoundsManager.Instance(); joysticksManager = JoysticksManager.Instance(); }
public void Show(string message) { UiSoundsManager.Instance().PlayError(); text.text = message; hingGo.SetActive(true); StopAllCoroutines(); StartCoroutine(Disable()); StartCoroutine(MoveUp()); }
private void Awake() { lobbySoundsManager = UiSoundsManager.Instance(); var buttons = FindObjectsOfType <Button>(); foreach (var button in buttons) // Возможно, потом стоит заменить на что-то лучшее { button.onClick.AddListener(lobbySoundsManager.PlayClick); } }
public CanvasClickHandlerSystem(Contexts contexts, LootboxSceneSwitcher lootboxLobbyLoaderController, UiSoundsManager uiSoundsManager, LootboxUiStorage lootboxUiStorage) : base(contexts.lootbox) { currentPrizeIndex = -1; lootboxContext = contexts.lootbox; this.uiSoundsManager = uiSoundsManager; this.lootboxUiStorage = lootboxUiStorage; this.lootboxLobbyLoaderController = lootboxLobbyLoaderController; }
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs purchaseEventArgs) { log.Debug(nameof(ProcessPurchase)); string receipt = purchaseEventArgs.purchasedProduct.receipt; bool purchaseIsValid = true; string sku = purchaseEventArgs.purchasedProduct.definition.id; string token = null; #if UNITY_ANDROID || UNITY_IOS || UNITY_STANDALONE_OSX CrossPlatformValidator validator = new CrossPlatformValidator(GooglePlayTangle.Data(), AppleTangle.Data(), Application.identifier); purchaseEventArgs.purchasedProduct.LogProduct(log); try { IPurchaseReceipt[] result = validator.Validate(purchaseEventArgs.purchasedProduct.receipt); log.Debug("Receipt is valid. Contents:"); foreach (IPurchaseReceipt productReceipt in result) { log.Debug(productReceipt.productID); log.Debug(productReceipt.purchaseDate.ToString()); log.Debug(productReceipt.transactionID); if (productReceipt is GooglePlayReceipt google) { log.Debug(google.transactionID); log.Debug(google.purchaseState.ToString()); log.Debug(google.purchaseToken); token = google.purchaseToken; } } } catch (IAPSecurityException) { log.Error("Invalid receipt, not unlocking content"); purchaseIsValid = false; } catch (Exception e) { log.Error(e.Message + " " + e.StackTrace); } #endif if (!purchaseIsValid) { log.Fatal($"Покупка не прошла локальную проверку"); UiSoundsManager.Instance().PlayError(); } serverValidator.StartValidation(sku, token); return(PurchaseProcessingResult.Pending); }
public static void LogProduct(this Product purchasedProduct, ILog log) { log.Debug(nameof(LogProduct) + " " + purchasedProduct.definition.id); try { var definitionEnabled = purchasedProduct.definition.enabled; var definitionId = purchasedProduct.definition.id; var definitionPayout = purchasedProduct.definition.payout; if (purchasedProduct.definition.payout != null) { var payoutData = purchasedProduct.definition.payout.data; var payoutQuantity = purchasedProduct.definition.payout.quantity; var payoutSubtype = purchasedProduct.definition.payout.subtype; var payoutTypeString = purchasedProduct.definition.payout.typeString; // log.Debug($"{nameof(payoutData)} {payoutData}"); // log.Debug($"{nameof(payoutQuantity)} {payoutQuantity}"); // log.Debug($"{nameof(payoutSubtype)} {payoutSubtype}"); // log.Debug($"{nameof(payoutTypeString)} {payoutTypeString}"); } var purchasedProductDefinition = purchasedProduct.definition; var purchasedProductReceipt = purchasedProduct.receipt; var purchasedProductHasReceipt = purchasedProduct.hasReceipt; var purchasedProductTransactionId = purchasedProduct.transactionID; var metadataLocalizedPrice = purchasedProduct.metadata.localizedPrice; var metadataLocalizedTitle = purchasedProduct.metadata.localizedTitle; var metadataIsoCurrencyCode = purchasedProduct.metadata.isoCurrencyCode; var metadataLocalizedPriceString = purchasedProduct.metadata.localizedPriceString; // log.Debug($"{nameof(definitionEnabled)} {definitionEnabled}"); // log.Debug($"{nameof(definitionId)} {definitionId}"); // log.Debug($"{nameof(definitionPayout)} {definitionPayout}"); // log.Debug($"{nameof(purchasedProductDefinition)} {purchasedProductDefinition}"); // log.Debug($"{nameof(purchasedProductReceipt)} {purchasedProductReceipt}"); // log.Debug($"{nameof(purchasedProductHasReceipt)} {purchasedProductHasReceipt}"); // log.Debug($"{nameof(purchasedProductTransactionId)} {purchasedProductTransactionId}"); // log.Debug($"{nameof(metadataLocalizedPrice)} {metadataLocalizedPrice}"); // log.Debug($"{nameof(metadataLocalizedTitle)} {metadataLocalizedTitle}"); // log.Debug($"{nameof(metadataIsoCurrencyCode)} {metadataIsoCurrencyCode}"); // log.Debug($"{nameof(metadataLocalizedPriceString)} {metadataLocalizedPriceString}"); } catch (Exception exception) { UiSoundsManager.Instance().PlayError(); log.Error(exception.Message); } }
public bool TryGetProductCostById(string sku, ref string cost) { try { Product product = storeController.products.WithID(sku); cost = product.metadata.localizedPriceString; return(true); } catch (Exception e) { UiSoundsManager.Instance().PlayError(); log.Error($"Не удалось получить стоимость продукта через api. " + $"{nameof(sku)} {sku} {e.Message} {e.StackTrace}"); } return(false); }
private void AddListenerToImproveButton(WarshipDto warshipDto) { var button = warshipsUiStorage.modalWindowImproveButton.GetComponent <Button>(); button.onClick.RemoveAllListeners(); button.onClick.AddListener(() => { UnityThread.ExecuteCoroutine(Coroutine()); }); IEnumerator Coroutine() { //Отправить запрос var downloader = new WarshipImprovementDownloader().TryBuy(warshipDto.Id); yield return(new WaitUntil(() => downloader.IsCompleted)); bool success = downloader.Result; if (success) { UiSoundsManager.Instance().PlayLevelUp(); //Показать анимацию получения нового уровня log.Info("Успешное получение уровня"); //Перезагрузить сцену lobbySceneSwitcher.ReloadScene(); var newLobbyEcs = Object.FindObjectOfType <LobbyEcsController>(); yield return(new WaitUntil(() => newLobbyEcs.IsWarshipsCreationCompleted())); yield return(new WaitUntil(() => newLobbyEcs.IsSoftCurrencyReady())); //Показать текущее меню newLobbyEcs.ShowWarshipList(); newLobbyEcs.ShowWarshipOverviewById(warshipDto.Id); } else { UiSoundsManager.Instance().PlayError(); //Показать уведомление, что ресурсов недостаточно log.Error("Не удалось получить новый уровень"); } } }
private void Start() { contexts = Contexts.sharedInstance; canvasClickHandlerSystem = new CanvasClickHandlerSystem(contexts, lobbyLoaderController, UiSoundsManager.Instance(), lootboxUiStorage); SystemsContainer systemsContainer = new SystemsContainer() .Add(new LootboxSpawnSystem(contexts.lootbox, lootboxUiStorage.lootboxPrefab, lootboxUiStorage.resourcesRoot.transform)) .Add(new LootboxOpeningSystem(contexts.lootbox, lootboxUiStorage.resourcesRoot.transform, this)) .Add(canvasClickHandlerSystem) .Add(new ShowPrizeSystem(contexts, particlesColorUpdater, lootboxUiStorage)) .Add(new ItemsLeftChangedSystem(contexts, lootboxUiStorage)) .Add(new ItemsLeftDisablingSystem(contexts, lootboxUiStorage)) .Add(new ResourcesInitializeSystem(lootboxUiStorage)) ; systems = systemsContainer.GetSystems(); systems.Initialize(); }
public StartButtonHandler(LobbyUiContext context, LobbyUiStorage lobbyUiStorage, UiSoundsManager lobbySoundsManager) : base(context) { lobbyUiContext = context; battleLoadingMenu = lobbyUiStorage.battleLoadingMenu; matchSearchCanvas = lobbyUiStorage.matchSearchCanvas; overlayCanvas = lobbyUiStorage.overlayCanvas; gameViewsRoot = lobbyUiStorage.gameViewsRoot; if (battleLoadingMenu == null) { throw new NullReferenceException($"{nameof(battleLoadingMenu)} was null"); } if (matchSearchCanvas == null) { throw new NullReferenceException($"{nameof(matchSearchCanvas)} was null"); } this.lobbySoundsManager = lobbySoundsManager; }
public void BuyProduct(PurchaseModel purchaseModel) { var realCurrencyCostModel = ZeroFormatterSerializer.Deserialize <RealCurrencyCostModel>(purchaseModel.productModel.CostModel .SerializedCostModel); string sku = realCurrencyCostModel.GoogleProductId; log.Debug($"{nameof(sku)} " + sku); bool isStoreInitialized = IsStoreInitialized(); log.Debug($"{nameof(isStoreInitialized)} {isStoreInitialized}"); if (!isStoreInitialized) { UiSoundsManager.Instance().PlayError(); log.Error($"Вызов покупки был сделан до того как магазин " + $"был инициализирован. {nameof(sku)} {sku}"); } Product product = storeController.products.WithID(sku); if (product == null || !product.availableToPurchase) { log.Error($"product is null or not available for purchase"); } if (!PlayerIdStorage.TryGetServiceId(out string playerServiceId)) { UiSoundsManager.Instance().PlayError(); log.Error($"Не удалось выполнить покупку потому, что {nameof(playerServiceId)} не доступен"); } if (playerServiceId == null) { log.Error($"{nameof(playerServiceId)} is null"); throw new Exception($"{nameof(playerServiceId)} is null"); } storeController.InitiatePurchase(sku); }
private IEnumerator ValidateCoroutine(string sku, string token) { Task <bool> task = new PurchaseValidatorTaskFactory().Create(sku, token); yield return(new WaitUntil(() => task.IsCompleted)); if (task.IsCanceled || task.IsFaulted) { log.Error($"Не удалось подтвердить покупку " + $"{nameof(task.IsCanceled)} {task.IsCanceled}" + $"{nameof(task.IsFaulted)} {task.IsFaulted}"); UiSoundsManager.Instance().PlayError(); yield break; } bool success = purchasingService.TryConfirmPendingPurchase(sku); if (!success) { log.Fatal($"Сервис платёжной системы не завершил покупку."); UiSoundsManager.Instance().PlayError(); } }
public bool TryConfirmPendingPurchase(string sku) { bool success = false; log.Debug(nameof(TryConfirmPendingPurchase)); try { Product product = storeController.products.WithID(sku); log.Debug($"Продукт найден по id {nameof(sku)} {sku}"); log.Debug("Подтверждение транзакции " + product.definition.id); storeController.ConfirmPendingPurchase(product); log.Debug("Транзакция успешно подтверджена"); success = true; } catch (Exception e) { UiSoundsManager.Instance().PlayError(); log.Error($"Не удалось подтвердить продукт {nameof(sku)} {sku}." + $" {e.Message} {e.StackTrace}"); } return(success); }
public ShiftSkinRightSystem(Contexts contexts, UiSoundsManager lobbySoundsManager) : base(contexts.lobbyUi) { lobbyUiContext = contexts.lobbyUi; this.lobbySoundsManager = lobbySoundsManager; }
public void BackButton_OnClick() { UiSoundsManager.Instance().PlayClick(); contexts.lobbyUi.CreateEntity().messageBackButtonPressed = true; }
public MovingIconDestroySystem(Contexts contexts) { uiSoundsManager = UiSoundsManager.Instance(); lobbyUiContext = contexts.lobbyUi; movingAwardsGroup = lobbyUiContext.GetGroup(LobbyUiMatcher.MovingIcon); }
public async Task <LobbyModel> Load(CancellationToken cts) { log.Info("Старт скачивания модели аккаунта"); HttpClient httpClient = new HttpClient(); int attemptNumber = 0; while (true) { log.Info("Номер попытки " + attemptNumber++); await Task.Delay(1000, cts); try { if (!PlayerIdStorage.TryGetServiceId(out string playerServiceId)) { log.Warn("Не удалось получить id игрока"); continue; } if (!PlayerIdStorage.TryGetUsername(out string username)) { log.Warn("Не удалось получить username игрока"); continue; } HttpResponseMessage response; using (MultipartFormDataContent formData = new MultipartFormDataContent()) { formData.Add(new StringContent(playerServiceId), nameof(playerServiceId)); formData.Add(new StringContent(username), nameof(username)); response = await httpClient.PostAsync(NetworkGlobals.InitializeLobbyUrl, formData, cts); } if (!response.IsSuccessStatusCode) { log.Warn("Статус ответа " + response.StatusCode); continue; } string base64String = await response.Content.ReadAsStringAsync(); if (base64String.Length == 0) { log.Warn("Ответ пуст "); continue; } byte[] data = Convert.FromBase64String(base64String); log.Info("Длина ответа в байтах " + data.Length); LobbyModel result = ZeroFormatterSerializer.Deserialize <LobbyModel>(data); log.Info("Десериализация прошла нормально"); return(result); } catch (TaskCanceledException e) { log.Warn("Task был отменён"); } catch (Exception e) { UiSoundsManager.Instance().PlayError(); log.Error("Упало при скачивании модели " + e.Message + " " + e.StackTrace); } } }
private void UpdateData(WarshipDto warshipDto) { //Установить название корабля warshipsUiStorage.warshipName.text = warshipDto.WarshipName.ToUpper(); //Установить тип корабля warshipsUiStorage.warshipTypeName.text = warshipDto.CombatRoleName; //Установить ранг корабля WarshipRankModel rankModel = WarshipRatingScaleStorage.Instance.GetRankModel(warshipDto.Rating); warshipsUiStorage.warshipRank.text = rankModel.currentRank.ToString(); //Установить слайдер для рейтинга warshipsUiStorage.trophySlider.value = rankModel.rankProgress; //Установить рейтинг корабля warshipsUiStorage.trophyText.text = rankModel.ToString(); //Установить описание корабля warshipsUiStorage.warshipDescription.text = warshipDto.Description; //Установить уровень силы warshipsUiStorage.warshipPowerLevel.text = "POWER " + warshipDto.PowerLevel; //TODO Установить характеристики корабля (атаку, защиту, скорость или что там) // log.Debug($"attack name "+warshipDto.WarshipCharacteristics.AttackName); // log.Debug($"ultimate name "+warshipDto.WarshipCharacteristics.UltimateName); var healthParameter = warshipDto.WarshipCharacteristics.DefenceParameters .SingleOrDefault(p => p.Name == "Health"); warshipsUiStorage.healthText.text = healthParameter != null?healthParameter.GetCurrentValue(warshipDto.PowerLevel).ToString("0.###") : "undefined"; var movementSpeed = warshipDto.WarshipCharacteristics.DefenceParameters .SingleOrDefault(p => p.Name == "Movement speed"); warshipsUiStorage.velocityText.text = movementSpeed != null?movementSpeed.GetCurrentValue(warshipDto.PowerLevel).ToString("0.###") : "undefined"; warshipsUiStorage.attackNameText.text = warshipDto.WarshipCharacteristics.AttackName; warshipsUiStorage.ultimateNameText.text = warshipDto.WarshipCharacteristics.UltimateName; //Проверить на кол-во ресурсов для перехода на новый уровень int softCurrency = lobbyEcsController.GetSoftCurrency(); var model = WarshipPowerScale.GetModel(warshipDto.PowerLevel); int improvementCost = model.SoftCurrencyCost; int maxPowerPoints = model.PowerPointsCost; bool showGreenScale = softCurrency >= improvementCost && warshipDto.PowerPoints >= maxPowerPoints; Text powerPointsValueText; //Показать нужную шкалу. (Красную или зелёную) if (showGreenScale) { powerPointsValueText = warshipsUiStorage.greenPowerPointsValueText; warshipsUiStorage.redScale.SetActive(false); warshipsUiStorage.greenScale.SetActive(true); } else { warshipsUiStorage.redScale.SetActive(true); warshipsUiStorage.greenScale.SetActive(false); powerPointsValueText = warshipsUiStorage.powerValueText; } //Установить кол-во очков силы для текущего уровня powerPointsValueText.text = warshipDto.PowerPoints + "/" + maxPowerPoints; //Установить слайдер для кол-ва очков силы warshipsUiStorage.powerSlider.maxValue = maxPowerPoints; warshipsUiStorage.powerSlider.value = warshipDto.PowerPoints; //Установить цену улучшения warshipsUiStorage.improveButtonCost.text = improvementCost.ToString(); //Установить слушатель для кнопки улучшения warshipsUiStorage.improveButton.onClick.RemoveAllListeners(); warshipsUiStorage.improveButton.onClick.AddListener(() => { if (warshipDto.PowerPoints < maxPowerPoints) { UiSoundsManager.Instance().PlayError(); string message = "The warship doesn't have enough power points."; textTooltip.Show(message); } else if (softCurrency < improvementCost) { UiSoundsManager.Instance().PlayError(); string message = "There's not enough coins to improve the spaceship."; textTooltip.Show(message); } else { UiSoundsManager.Instance().PlayClick(); //показать окно покупки улучшения lobbyEcsController.ShowWarshipImprovementModalWindow(warshipDto); } }); string oldSkinName = warshipDto.GetCurrentSkinName(); //Установить слушатель для кнопки выбора корабля warshipsUiStorage.chooseButton.onClick.RemoveAllListeners(); warshipsUiStorage.chooseButton.onClick.AddListener(() => { CurrentWarshipTypeStorage.WriteWarshipType(warshipDto.WarshipTypeEnum); // log.Debug("Слушатель работает"); UiSoundsManager.Instance().PlayClick(); //заменить скин если нужно int actualSkinIndex = lobbyUiContext.warshipOverviewCurrentSkinModel.skinIndex; string newSkinName = warshipDto.GetCurrentSkinName(); if (oldSkinName != newSkinName) { warshipDto.CurrentSkinIndex = actualSkinIndex; int warshipId = warshipDto.Id; var task = new SkinChangingNotifier().ChangeSkinOnServerAsync(warshipId, newSkinName); } else { log.Info("Скин не был изменён"); } //изменить тип текущего корабля lobbyUiContext.ReplaceCurrentWarshipTypeEnum(warshipDto.WarshipTypeEnum); //заменть компонент корабля lobbyUiContext.CreateEntity().AddWarship(warshipDto); //выключить меню обзора корабля lobbyUiContext.CreateEntity().messageDisableWarshipOverviewUiLayer = true; //выключить меню со списком кораблей lobbyUiContext.CreateEntity().messageDisableWarshipListUiLayer = true; }); //Установить стоимость для кнопки покупки улучшения warshipsUiStorage.popupWindowCostText.text = improvementCost.ToString(); //Установить слушатель для кнопки покупки улучшения warshipsUiStorage.popupWindowBuyButton.onClick.RemoveAllListeners(); warshipsUiStorage.popupWindowBuyButton.onClick.AddListener(() => { //todo показать окно подтверждения }); //Установить слушатель для меню с характеристиками корабля warshipsUiStorage.warshipCharacteristicsButton.onClick.RemoveAllListeners(); warshipsUiStorage.warshipCharacteristicsButton.onClick.AddListener(() => { if (warshipDto.PowerPoints < maxPowerPoints || softCurrency < improvementCost) { UiSoundsManager.Instance().PlayClick(); lobbyEcsController.ShowWarshipCharacteristics(warshipDto); } else { UiSoundsManager.Instance().PlayClick(); //показать окно покупки улучшения lobbyEcsController.ShowWarshipImprovementModalWindow(warshipDto); } }); }
public WppViewDestroySystem(Contexts contexts) { uiSoundsManager = UiSoundsManager.Instance(); context = contexts.wppAccrual; movingAwardsGroup = context.GetGroup(WppAccrualMatcher.MovingIcon); }
private void CreateItems(List <WarshipDto> warshipDtos) { for (int index = 0; index < warshipDtos.Count; index++) { GameObject prefab = Resources.Load <GameObject>("Prefabs/LobbyWarshipsList/Image_WarshipListItem") ?? throw new Exception("Не удалось найти префаб"); Transform parent = warshipsUiStorage.warshipsListBackgroundGameObject.transform; GameObject item = Object.Instantiate(prefab, parent, false); //Взять элемент WarshipDto warshipDto = warshipDtos[index]; //Установить картинку string skinName = warshipDto.GetCurrentSkinName(); Image image = item.transform.Find("Image_WarshipPreview").GetComponent <Image>(); image.sprite = Resources.Load <Sprite>($"SkinPreview/{skinName}"); if (image.sprite == null) { log.Error($"Не найден скин skinName {skinName}"); } //Установить название корабля Text warshipNameText = item.transform.Find("Image_WarshipPreview/Text_WarshipName").GetComponent <Text>(); warshipNameText.text = warshipDto.WarshipName.ToUpper(); //Установить уровень силы Text warshipPowerText = item.transform.Find("Image_WarshipPreview/Text_Power").GetComponent <Text>(); warshipPowerText.text = "POWER " + warshipDto.PowerLevel; //Проверить на кол-во ресурсов для перехода на новый уровень int softCurrency = lobbyEcsController.GetSoftCurrency(); var model = WarshipPowerScale.GetModel(warshipDto.PowerLevel); int improvementCost = model.SoftCurrencyCost; int maxPowerPoints = model.PowerPointsCost; bool showImproveAnimation = softCurrency >= improvementCost && warshipDto.PowerPoints >= maxPowerPoints; if (showImproveAnimation) { item.transform.Find("Empty_PowerValueRoot").gameObject.SetActive(false); item.transform.Find("Empty_FilledPowerScale").gameObject.SetActive(true); } else { item.transform.Find("Empty_PowerValueRoot").gameObject.SetActive(true); item.transform.Find("Empty_FilledPowerScale").gameObject.SetActive(false); //Установить кол-во баллов текущего уровня силы на шкале прогресса Slider slider = item.transform.Find("Empty_PowerValueRoot/Slider").GetComponent <Slider>(); slider.maxValue = maxPowerPoints; slider.value = warshipDto.PowerPoints; //Установить текст кол-ва баллов текущего уровня силы Text sliderText = item.transform.Find("Empty_PowerValueRoot/Text").GetComponent <Text>(); sliderText.text = warshipDto.PowerPoints + "/" + maxPowerPoints; } //Подготовка к показу ранга WarshipRankModel warshipRankModel = WarshipRatingScaleStorage.Instance.GetRankModel(warshipDto.Rating); //Установить текст уровеня ранга Text rankText = item.transform.Find("Empty_WarshipExperienceScale/Image_LeftCircle/Text_RankValue") .GetComponent <Text>(); rankText.text = warshipRankModel.currentRank.ToString(); //Установить текст кол-ва трофеев Text trophyCountText = item.transform.Find("Empty_WarshipExperienceScale/Image_RightRect/Text") .GetComponent <Text>(); trophyCountText.text = warshipDto.Rating.ToString(); //Установить значение шкалы прогресса кол-ва трофеев Slider sliderTrophy = item.transform.Find("Empty_WarshipExperienceScale/Image_RightRect/Slider") .GetComponent <Slider>(); sliderTrophy.value = warshipRankModel.rankProgress; //Установить обработчик нажатия Button button = item.GetComponent <Button>(); button.onClick.RemoveAllListeners(); button.onClick.AddListener(() => { UiSoundsManager.Instance().PlayClick(); lobbyEcsController.ShowWarshipOverview(warshipDto); }); } }
private void ShowError(string errorMessage) { errorText.text = $"<color='red'>{errorMessage}</color>\n<i>Click to return.</i>"; errorRoot.SetActive(true); UiSoundsManager.Instance().PlayError(); }