private void OnShipModuleStateChanged(ShipModuleState oldState, ShipModuleState newState, ShipModuleInfo module) { if (module.Id >= moduleId) { ResetImageMaterial(); AnimateToOpenedState(); } }
private void MoveObject(ShipModuleInfo module) { foreach (var part in moduleParts) { if (part.moduleId <= module.Id) { part.MoveToVisible(totalInterval); } else { part.MoveToHided(totalInterval); } } }
private void SetupNormalView() { titleText.text = LocalizationObj.GetString("lbl_modules_title"); normalBackground.Activate(); flightView.Deactivate(); UpdateCompletedState(); dots.ToggleActivity(true); if (isSwipeEnabled) { this.currentModule = Services.GetService <IShipModuleService>().GetModule((int)Model.ModuleId); EnableDot((int)Model.ModuleId); moduleView.Setup(currentModule); } else { moduleView?.Deactivate(); dots.ToggleActivity(false); } }
private void OnShipModuleStateChanged(ShipModuleState oldState, ShipModuleState newState, ShipModuleInfo module) { if (Model != null && Model.ScreenType == ModuleScreenType.Normal) { UpdateCompletedState(); } }
private void OnShipModuleStateChanged(ShipModuleState oldState, ShipModuleState newState, ShipModuleInfo module) { UpdateShip(); }
public void Setup(ShipModuleInfo module) { this.module = module; ModuleNameData moduleNameData = Services.ResourceService.ModuleNameRepository.GetModuleNameData(module.Id); moduleNameText.text = Services.ResourceService.Localization.GetString(moduleNameData.name); switch (module.State) { case ShipModuleState.Opened: { currencyIconImage.Deactivate(); currencyText.Deactivate(); planetImage.Deactivate(); buyButton.Deactivate(); } break; case ShipModuleState.Available: { currencyIconImage.Activate(); currencyText.Activate(); planetImage.Deactivate(); buyButton.Activate(); } break; case ShipModuleState.Locked: { currencyIconImage.Activate(); currencyText.Activate(); planetImage.Activate(); buyButton.Activate(); } break; } currencyIconImage.overrideSprite = Services.ResourceService.GetCurrencySprite(module.CurrencyType); currencyText.text = BosUtils.GetCurrencyString(Currency.Create(module.CurrencyType, module.Price)); PlanetNameData planetNameData = Services.ResourceService.PlanetNameRepository.GetPlanetNameData(module.Data.PlanetId); if (planetNameData != null) { planetImage.overrideSprite = Services.ResourceService.GetSpriteByKey(planetNameData.icon); } else { planetImage.overrideSprite = Services.ResourceService.Sprites.FallbackSprite; } buyButton.SetListener(() => { var status = Services.GetService <IShipModuleService>().BuyModule(module.Id); switch (status) { case ModuleTransactionState.Success: { Services.SoundService.PlayOneShot(SoundName.buyUpgrade); Setup(module); } break; case ModuleTransactionState.NotEnoughCurrency: { if (module.CurrencyType == CurrencyType.Coins) { Services.ViewService.Show(ViewType.CoinRequiredView, new ViewData { UserData = (int)module.Price }); } } break; } }); IShipModuleService moduleService = Services.GetService <IShipModuleService>(); updateTimer.Setup(0.5f, (deltaTime) => { ModuleTransactionState moduleTransactionState; if (moduleService.IsAllowBuyModule(module.Id, out moduleTransactionState)) { buyButton.interactable = true; } else if (moduleTransactionState == ModuleTransactionState.NotEnoughCurrency && module.CurrencyType == CurrencyType.Coins) { buyButton.interactable = true; } else { buyButton.interactable = false; } }, true); MoveObject(module); }
private void Setup() { if (moduleService == null) { moduleService = Services.GetService <IShipModuleService>(); } if (module == null) { module = moduleService.GetModule(moduleId); } if (moduleNameData == null) { moduleNameData = Services.ResourceService.ModuleNameRepository.GetModuleNameData(moduleId); } nameText.text = Services.ResourceService.Localization.GetString(moduleNameData.name); iconImage.overrideSprite = Services.ResourceService.GetSpriteByKey(moduleNameData.icon); currencyIconImage.overrideSprite = Services.ResourceService.GetCurrencySprite(module.Data.Currency); currencyText.text = BosUtils.GetCurrencyString(module.Data.Currency); ModuleTransactionState status; bool isAllowedToBuy = moduleService.IsAllowBuyModule(moduleId, out status); if (isAllowedToBuy) { requirementText.text = string.Empty; buyButton.interactable = true; } else { switch (status) { case ModuleTransactionState.NotEnoughCurrency: { requirementText.text = string.Empty; currencyText.text = BosUtils.GetCurrencyString(module.Data.Currency, "#FF0000"); buyButton.interactable = false; } break; case ModuleTransactionState.NotValidState: { var planetData = Services.ResourceService.Planets.GetPlanet(module.Data.PlanetId); if (planetData == null) { Debug.LogError($"not found planet for upgrade level => {module.Data.PlanetId}"); return; } PlanetNameData planetNameData = Services.ResourceService.PlanetNameRepository.GetPlanetNameData(planetData.Id); requirementText.text = string.Format(Services.ResourceService.Localization.GetString("fmt_module_requirement"), Services.ResourceService.Localization.GetString(planetNameData.name)); buyButton.interactable = false; buyText.color = Color.grey; } break; } } buyButton.SetListener(() => { var buyStatus = moduleService.BuyModule(moduleId); if (buyStatus == ModuleTransactionState.Success) { Services.GetService <ISoundService>().PlayOneShot(SoundName.Poof); buyParticles?.Play(); } else { Services.GetService <ISoundService>().PlayOneShot(SoundName.click); } }); switch (module.State) { case ShipModuleState.Opened: { checkObject.Activate(); buyButton.Deactivate(); requirementText.text = string.Empty; } break; default: { checkObject.Deactivate(); buyButton.Activate(); } break; } }
private void OnModuleStateChnaged(ShipModuleState oldState, ShipModuleState newState, ShipModuleInfo module) { if (module.Id == moduleId) { Setup(); } }