Exemple #1
0
        public override void Give(float multiplier)
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            userProfileModel.UpdateCurrency(CurrencyType.Respect, RespectIncome * multiplier);
            userProfileModel.UpdateCurrency(CurrencyType.Dollar, DollarsIncome * multiplier);
        }
Exemple #2
0
        private void OnBackButtonClick()
        {
            if (DynamicParametersManager.Instance.Get(DynamicParameterType.ArtistsCount).Level <= 1)
            {
                return;
            }

            SetBackButtonActive(false);

            AudioClipData audioClipData = ConfigManager.Instance.Get <AudioConfig>().OpenPopupAudioClipData;

            AudioManager.Instance.PlaySoundFx(audioClipData);

            LoadingScreen loadingScreen = ScreensManager.Instance.GetScreen <LoadingScreen>();

            loadingScreen.Initialize(SceneType.Main);
            loadingScreen.Show();

            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            if (userProfileModel.TutorialStage == (int)TutorialType.ReturnToCity)
            {
                TutorialPopup tutorialPopup = PopupManager.Instance.GetPopup <TutorialPopup>();
                tutorialPopup.Hide();

                userProfileModel.TutorialStage++;
            }
        }
Exemple #3
0
        private void EndGame()
        {
            IUserProfileModel userProfileModel = Get <IUserProfileModel>();

            userProfileModel.CurrentCityProgress.exitTime = DateTime.Now;
            userProfileModel.IsFirstSession = false;
            userProfileModel.SaveUserProfile();
        }
Exemple #4
0
        public void Load(IUserProfileModel userProfileModel)
        {
            IUserInventory inventory   = LoadInventory();
            IUserStats     userStats   = LoadUserStats();
            IGameOptions   gameOptions = LoadGameOptions();

            userProfileModel.UserProfile = new UserProfile(inventory, userStats, gameOptions);
        }
Exemple #5
0
        public override void Give(float multiplier)
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            float value = DynamicParametersManager.Instance.Get(DynamicParameterType.RespectIncomePerBlock).Value *multiplier;

            userProfileModel.UpdateCurrency(CurrencyType.Respect, value);
        }
Exemple #6
0
        private bool IsCanChooseBuilding(ProductionBuilding building)
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            bool isTutorialCompleted     = userProfileModel.TutorialStage > (int)TutorialType.BuyHouse;
            bool isItCheapestBuilding    = building.Equals(GetCheapestBuilding());
            bool hasFewUnlockedBuildings = userProfileModel.CurrentCityProgress.UnlockedBuildings > 1;

            return(isTutorialCompleted || isItCheapestBuilding || hasFewUnlockedBuildings);
        }
Exemple #7
0
        private void OnMusicButtonClick()
        {
            PlayClickAudio();

            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            userProfileModel.IsMusicOn = !userProfileModel.IsMusicOn;

            DisplayMusicStatus(userProfileModel.IsMusicOn);
        }
Exemple #8
0
        public void Initialize()
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            string        cityNumber    = userProfileModel.CurrentCity;
            AudioClipData audioClipData = ConfigManager.Instance.Get <CityConfig>().GetCityData(cityNumber).AudioClipData;

            AudioManager.Instance.PlayBackgroundAudio(audioClipData);

            userProfileModel.CurrentCityProgress.enterTime = DateTime.Now;
        }
        protected override void OnCloseButtonClick()
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            if (userProfileModel.TutorialStage <= (int)TutorialType.WatchGraffiti)
            {
                return;
            }

            base.OnCloseButtonClick();
        }
Exemple #10
0
        public override void TryToBuy(float price, Action onComplete = null)
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            if (userProfileModel.GetCurrency(CurrencyType.Dollar).Value < price)
            {
                return;
            }

            onComplete?.Invoke();
            userProfileModel.UpdateCurrency(CurrencyType.Dollar, -price);
        }
Exemple #11
0
        public void TryToShowBackButtonTutorial()
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            if (userProfileModel.CurrentCityProgress.UnlockedBuildings > 1 || userProfileModel.TutorialStage != (int)TutorialType.ReturnToCity)
            {
                return;
            }

            TutorialPopup tutorialPopup = PopupManager.Instance.GetPopup <TutorialPopup>();

            tutorialPopup.InitializeTutorial(TutorialType.ReturnToCity);
            tutorialPopup.Show();
        }
Exemple #12
0
        private void UpdateCameraPos()
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            if (userProfileModel.TutorialStage <= (int)TutorialType.WatchGraffiti && userProfileModel.CurrentCityProgress.DrawnBuildings == 0)
            {
                return;
            }

            Vector3 direction = m_inputService.Direction;
            Vector3 movement  = m_cameraConfig.swipeMapForce * direction.magnitude * m_cameraConfig.movingFactor * direction;
            Vector2 newPos    = m_cameraTargetPos + movement;

            m_cameraTargetPos = newPos;
        }
Exemple #13
0
        private void SendDrawnEvent()
        {
            IUserProfileModel        userProfileModel         = ServiceLocator.Instance.Get <IUserProfileModel>();
            DynamicParametersManager dynamicParametersManager = DynamicParametersManager.Instance;

            AnalyticEvent analyticEvent = new AnalyticEvent(StringConstants.AnalyticsEvents.DrawnGraffiti);

            analyticEvent.AddParameter(StringConstants.AnalyticsEventsParameters.BuildingId, userProfileModel.OpenedBuildingId);
            analyticEvent.AddParameter(StringConstants.AnalyticsEventsParameters.CountOfArtists, dynamicParametersManager.Get(DynamicParameterType.ArtistsCount).Value);
            analyticEvent.AddParameter(StringConstants.AnalyticsEventsParameters.MorePerBlock, dynamicParametersManager.Get(DynamicParameterType.RespectIncomePerBlock).Level);
            analyticEvent.AddParameter(StringConstants.AnalyticsEventsParameters.RunningSpeed, dynamicParametersManager.Get(DynamicParameterType.RunningSpeed).Level);
            analyticEvent.AddParameter(StringConstants.AnalyticsEventsParameters.DrawingSpeed, dynamicParametersManager.Get(DynamicParameterType.DrawingSpeed).Level);
            analyticEvent.AddParameter(StringConstants.AnalyticsEventsParameters.CapacityOfCans, dynamicParametersManager.Get(DynamicParameterType.SprayBottleCapacity).Level);
            analyticEvent.AddParameter(StringConstants.AnalyticsEventsParameters.CurrencyType, userProfileModel.OpenedBuildingCurrencyType.ToString().ToLower());
        }
        protected override void OnClaimButtonClick()
        {
            base.OnClaimButtonClick();

            SendOpenEvent();

            LoadingScreen loadingScreen = ScreensManager.Instance.GetScreen <LoadingScreen>();

            loadingScreen.Initialize(SceneType);
            loadingScreen.Show();

            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            userProfileModel.CurrentCityProgress.exitTime = DateTime.Now;
        }
Exemple #15
0
        private void TryToShowSpeedUpTutorial()
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            if (userProfileModel.CurrentCityProgress.UnlockedBuildings > 1 || userProfileModel.TutorialStage > (int)TutorialType.SpeedUpArtists)
            {
                TryToShowBuyArtistTutorial();
                return;
            }

            TutorialPopup tutorialPopup = PopupManager.Instance.GetPopup <TutorialPopup>();

            tutorialPopup.InitializeTutorial(TutorialType.SpeedUpArtists);
            tutorialPopup.Show();

            ServiceLocator.Instance.Get <InputService>().eventOnPointerDown += OnTutorialPointerDown;
        }
Exemple #16
0
        private void OnArtistAdded()
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            if (userProfileModel.TutorialStage == (int)TutorialType.BuyArtists)
            {
                userProfileModel.TutorialStage++;
                TutorialPopup tutorialPopup = PopupManager.Instance.GetPopup <TutorialPopup>();
                tutorialPopup.Hide();
            }

            TeamManager.Instance.BusyArtistsCount += 1;

            var buildings = userProfileModel.CurrentCityProgress.productionBuildings;

            buildings[userProfileModel.OpenedBuildingId].artistsCount = userProfileModel.OpenedBuildingArtists += 1;

            SpawnArtist();
        }
Exemple #17
0
        protected override void OnClaimButtonClick()
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            if (userProfileModel.TutorialStage == (int)TutorialType.AddArtist)
            {
                return;
            }

            userProfileModel.OpenedBuildingArtists = m_targetBuilding.ArtistsCount;

            if (userProfileModel.TutorialStage == (int)TutorialType.WatchGraffiti)
            {
                userProfileModel.TutorialStage += 1;
                TutorialPopup tutorialPopup = PopupManager.Instance.GetPopup <TutorialPopup>();
                tutorialPopup.Hide();
            }

            base.OnClaimButtonClick();
        }
Exemple #18
0
        private void OnPointerUp()
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            Vector2 mousePosition = Input.mousePosition;

            if (m_inputService.IsDragged || EventSystem.current.IsPointerUnderUI(mousePosition, m_clickableLayer))
            {
                return;
            }

            Ray          ray = m_mainCamera.ScreenPointToRay(mousePosition);
            RaycastHit2D hit = Physics2D.GetRayIntersection(ray, Mathf.Infinity, m_productionBuildingLayer);

            if (hit)
            {
                ProductionBuilding productionBuilding = hit.collider.gameObject.GetComponentInParent <ProductionBuilding>();

                if (!IsCanChooseBuilding(productionBuilding))
                {
                    return;
                }

                m_selectedProductionBuilding?.OnUnSelected();
                m_selectedProductionBuilding = productionBuilding;
                m_selectedProductionBuilding.OnSelected();
                userProfileModel.OpenedBuildingId           = m_selectedProductionBuilding.Id;
                userProfileModel.OpenedBuildingCurrencyType = m_selectedProductionBuilding.CurrencyType;

                if (userProfileModel.TutorialStage == (int)TutorialType.OpenHouse)
                {
                    userProfileModel.TutorialStage += 1;
                }

                TryToShowBuyTutorial(productionBuilding);
                return;
            }

            m_selectedProductionBuilding?.OnUnSelected();
        }
Exemple #19
0
        public void Initialize()
        {
            IUserProfileModel userProfileModel = ServiceLocator.Instance.Get <IUserProfileModel>();

            m_productionBuildingData = userProfileModel.CurrentCityProgress.GetProductionBuildingData(userProfileModel.OpenedBuildingId);
        }
Exemple #20
0
 public void Save(IUserProfileModel userProfileModel)
 {
     SaveInventory(userProfileModel.UserProfile.UserInventory);
     SaveUserStats(userProfileModel.UserProfile.UserStats);
     SaveGameOptions(userProfileModel.UserProfile.GameOptions);
 }