Пример #1
0
        void LoadSkinForPrize()
        {
            //Has already loaded a prize from before
            if (skinPrize != null)
            {
                spritesForResult.Remove(skinPrize);
            }
            var        playerSkins = Resources.LoadAll <Sprite>("Sprites/Player/Previews");
            List <int> owendSkins  = PlayerStatusService.LoadPlayerStatus().GetOwnedShipsIDs();

            int[] skinsIds = playerSkins.Select(x => Convert.ToInt32(x.name)).ToArray();
            skinsIds = skinsIds.Where(x => !owendSkins.Contains(x)).ToArray();

            var ownedIdsStr = owendSkins.Select(x => x.ToString());

            playerSkins = playerSkins.Where(x => !ownedIdsStr.Contains(x.name)).ToArray();

            if (playerSkins.Length > 0)
            {
                skinPrize = GetSkinPrize(skinsIds, playerSkins);
                spritesForResult.Add(skinPrize);
            }
            else
            {
                maxValue = spritesForResult.Count - 1;
                Debug.Log("max value:" + maxValue);
            }
        }
Пример #2
0
        public void PullLever()
        {
            if (playerData.GetJackpotTokens() > 0 && !gameActive)
            {
                LoadSkinForPrize();
                leverPullAudioSource.Play();

                returnBtn.interactable = false;

                resultPanelPrizeImg.sprite = spritesForResult[0];

                playerData.DecreaseJackpotTokens(1);
                tokenAmountTxt.text = playerData.GetJackpotTokens().ToString();
                PlayerStatusService.SavePlayerStatus(playerData);

                leverBtn.interactable = false;

                imageQueue.Enqueue(secondImage);
                imageQueue.Enqueue(thirdImage);

                currentRollingImage = firstImage;
                currentImgValue     = 0;
                isRollingImage      = true;
                StartCoroutine(RollImage());

                gameActive = true;
                EnableButtons();
            }
            else
            {
                errorAudioSource.Play();
                alertMessageManager.SetAlertMessage(notEnoughTokensMsg);
            }
        }
Пример #3
0
        void BuyBuff(ShopBuff item)
        {
            PlayerStatusData playerData = PlayerStatusService.LoadPlayerStatus();

            if (!item.HasReachedItemMax().Invoke())
            {
                PlayErrorSound();
                alertMessageManager.SetAlertMessage(itemMaxReachedMsg);
                return;
            }

            if (PlayerHasEnoughFundsToBuy(item.buffPrice))
            {
                playerScore -= item.buffPrice;

                item.BuyItem().Invoke();

                playerData.DecreaseScore(item.buffPrice);
                PlayerStatusService.SavePlayerStatus(playerData);
                LoadPlayerData();

                item.DeselectObject();
                selectedObjectManager.RemoveSelectedObject();
                PlayBuySound();
            }
            else
            {
                PlayErrorSound();
                alertMessageManager.SetAlertMessage(notEnoughMoneyMsg);
            }
        }
Пример #4
0
        void GetPrize(int firstValue, int secondValue, int thirdValue)
        {
            resultMsgTxt.text = noRewardJackPot;

            //All numbers equal
            if (firstValue == secondValue && secondValue == thirdValue)
            {
                //Return best prize
                var hasPrize = GetPrizeObject(firstValue, true);
                resultPanel.gameObject.SetActive(true);

                if (hasPrize)
                {
                    bestPrizeAudioSource.Play();
                }
                return;
            }

            //Two numbers equal
            int[] nums = new int[3] {
                firstValue, secondValue, thirdValue
            };

            var numsDic  = new Dictionary <int, int>();
            int?equalNum = null;

            for (int i = 0; i < nums.Length; i++)
            {
                if (numsDic.ContainsKey(nums[i]))
                {
                    numsDic[nums[i]]++;
                    equalNum = nums[i];
                }
                else
                {
                    numsDic.Add(nums[i], 1);
                }
            }

            if (equalNum.HasValue)
            {
                //Return second best prize
                var hasPrize = GetPrizeObject(equalNum.Value, false);
                resultPanel.gameObject.SetActive(true);

                if (hasPrize)
                {
                    prizeAudioSource.Play();
                }

                return;
            }

            //return nothing
            resultPanel.gameObject.SetActive(true);
            noPrizeAudioSource.Play();

            PlayerStatusService.SavePlayerStatus(null);
        }
Пример #5
0
        public void GiveAdsPrize()
        {
            var prize = AdsPrizeService.GetRandomPrize(this.finalScore);

            prize.GivePrize(this);
            PlayerStatusService.SavePlayerStatus(PlayerStatusService.LoadPlayerStatus());
            prizeAudioSource.Play();
        }
Пример #6
0
        void Start()
        {
            int dashUpgrades = PlayerStatusService.LoadPlayerStatus().GetDashUpgrade();

            if (dashUpgrades > 0)
            {
                dashDuration *= dashUpgrades;
            }
        }
Пример #7
0
        void StartScoreCountDown(int roundScore)
        {
            scoreCounterAudioSource.Play();

            //set final score currently equals the total amount the player has
            currentPlayerScore     = PlayerStatusService.LoadPlayerStatus().GetScore();
            scoreCountUp           = currentPlayerScore - roundScore;
            gameOverScoreText.text = (currentPlayerScore - roundScore).ToString();
            StartCoroutine(ScoreCountDownCoroutine(currentPlayerScore, false));
        }
        public void DefineShip()
        {
            PlayerStatusData playerdata = PlayerStatusService.LoadPlayerStatus();

            playerdata.SetSelectedShipId(selectedShip.GetId());

            PlayerStatusService.SavePlayerStatus(playerdata);

            GameObject.Find("SceneManager").GetComponent <ScenesManager>().LoadNewGame();
        }
        public void SetCulture(string culture)
        {
            var playerData = PlayerStatusService.LoadPlayerStatus();

            playerData.SetCurrentLanguage(culture);

            PlayerStatusService.SavePlayerStatus(playerData);

            scenesManager.LoadMainMenu();
        }
Пример #10
0
        private void Start()
        {
            PlayerLifeManager playerLifeManager = GetComponent <PlayerLifeManager>();
            PlayerStatusData  playerData        = PlayerStatusService.LoadPlayerStatus();

            playerData.SwapStoredShields();
            amountShields = playerData.GetShieldBuff();
            int initialAmountShields = amountShields;

            PlayerStatusService.SavePlayerStatus(playerData);

            UpdateShieldText();
        }
Пример #11
0
        protected GameObject LoadShipPrefab()
        {
            PlayerStatusData playerData = PlayerStatusService.LoadPlayerStatus();

            int selectedShipId = playerData.GetSelectedShipId();

            if (selectedShipId == 0)
            {
                selectedShipId = 1;
            }

            return(Resources.Load <GameObject>("Prefabs/Ships/" + selectedShipId));
        }
Пример #12
0
        void LoadPlayerData()
        {
            PlayerStatusData playerData = PlayerStatusService.LoadPlayerStatus();

            playerScore         = playerData.GetScore();
            scoreAmountTxt.text = playerScore.ToString();

            SetTokensText(playerData.GetJackpotTokens());
            SetLivesAmountText(playerData.GetLifeBuff(), playerData.GetLifeUpgrade());
            SetShieldsAmountText(playerData.GetShieldBuff(), playerData.GetShieldUpgrade());

            SetStoredLifesText(playerData.GetStoreLifePrizes());
            SetStoredShieldsText(playerData.GetStoredShieldPrizes());
            SetDashUpgradesText(playerData.GetDashUpgrade(), playerData.GetMaxDashUpgrade());
        }
        private void Start()
        {
            if (AudioDataService.HasMusicOn())
            {
                musicAudioSource.Play();
            }

            if (PlayerStatusService.HasPlayerDataFile())
            {
                scenesManager.LoadMainMenu();
            }
            else
            {
                englishBtn.SetActive(true);
                portugueseBtn.SetActive(true);
            }
        }
Пример #14
0
        private void Start()
        {
            playerSpritesManager = GetComponent <PlayerSpritesManager>();
            PlayerStatusData playerData = PlayerStatusService.LoadPlayerStatus();

            maxLifes = playerData.GetLifeUpgrade();

            playerData.SwapStoredLivesToBuff();

            lives += playerData.GetLifeBuff();

            UpdateLifeText();

            canBeHit = true;

            PlayerStatusService.SavePlayerStatus(playerData);

            hitAudioSource.clip.LoadAudioData();
        }
Пример #15
0
        public void DecreaseLife()
        {
            if (canBeHit)
            {
                hitAudioSource.Play();

                lives--;
                PlayerStatusData playerData = PlayerStatusService.LoadPlayerStatus();

                //Game Over
                if (lives <= 0)
                {
                    SetDummyDeadPlayer();

                    gameOverManager.TakeScreenShot();
                    //Stop the score count
                    scoreCounterManager.enabled = false;

                    //Save player stats
                    playerData.SetLifeBuff(0);

                    int finalScore = scoreCounterManager.FinishAndGetFinalScore();
                    playerData.IncreaseScore(finalScore);
                    PlayerStatusService.SavePlayerStatus(playerData);

                    gameOverManager.SetGameOver(finalScore);
                    DisablePlayer();
                    UpdateLifeText();
                }
                else
                {
                    //buffs means extra lives, so we reduce one from total amount of lives the player has
                    playerData.SetLifeBuff(lives - 1);
                    PlayerStatusService.SavePlayerStatus(playerData);
                    UpdateLifeText();

                    //Make player invulnerable for few seconds
                    SetPlayerInvulnerable();
                }
            }
        }
Пример #16
0
        private void Start()
        {
            notEnoughTokensMsg = "Not enough tokens!";
            spritesForResult   = new List <Sprite>();

            playerData          = PlayerStatusService.LoadPlayerStatus();
            tokenAmountTxt.text = playerData.GetJackpotTokens().ToString();

            imageQueue = new Queue <Image>();

            var _spritesForResult = Resources.LoadAll <Sprite>("Sprites/Jackpot/RollingImages");

            foreach (var item in _spritesForResult)
            {
                spritesForResult.Add(item);
            }

            maxValue = (short)(spritesForResult.Count - 1);

            LoadTextsLanguage();
        }
Пример #17
0
        void BuyShip(IShopItem selectedShip)
        {
            //Player has enough money?

            if (!PlayerHasEnoughFundsToBuy(selectedShip.GetPrice()))
            {
                PlayErrorSound();
                alertMessageManager.SetAlertMessage(notEnoughMoneyMsg);
                return;
            }

            PlayerStatusData playerData = PlayerStatusService.LoadPlayerStatus();

            //Player already bought this ship?
            if (!((IShopCharacterSkin)selectedShip).AlreadyHasShip().Invoke())
            {
                playerScore        -= selectedShip.GetPrice();
                scoreAmountTxt.text = playerScore.ToString();

                selectedShip.BuyItem().Invoke();

                PlayerStatusService.SavePlayerStatus(playerData);

                ((IShopCharacterSkin)selectedShip).DisableCharacterButton();

                //Clear data
                //remove from selectedobjectmanager
                selectedObjectManager.RemoveSelectedObject();

                selectedShip = null;

                PlayBuySound();
            }
            else
            {
                PlayErrorSound();
                alertMessageManager.SetAlertMessage(subAlreadyBoughtMsg);
            }
        }
Пример #18
0
        bool GetPrizeObject(int prizeNum, bool bestPrize)
        {
            bool             hasPrize   = false;
            PlayerStatusData playerData = PlayerStatusService.LoadPlayerStatus();

            switch (prizeNum)
            {
            case 1:     //Life Buff
                GetLifePrize(bestPrize, playerData, prizeNum);
                hasPrize = true;
                break;

            case 2:     //Extra Credits XXX
                resultPanelPrizeImg.sprite = spritesForResult[prizeNum];
                if (bestPrize)
                {
                    resultMsgTxt.text = string.Format("+300 {0}", creditsItem);

                    playerData.IncreaseScore(300);
                }
                else
                {
                    resultMsgTxt.text = string.Format("+50 {0}", creditsItem);

                    playerData.IncreaseScore(50);
                }
                hasPrize = true;
                break;

            case 3:      //Dash Upgrade
                if (bestPrize && playerData.CanUpgradeDash())
                {
                    playerData.IncreaseDashUpgrade();
                    resultMsgTxt.text          = dashUpgradeItem;
                    resultPanelPrizeImg.sprite = spritesForResult[prizeNum];
                    hasPrize = true;
                }
                else
                {
                    resultMsgTxt.text = twoPointsDashWarningJackPot;
                }
                break;

            case 4:     //New Skin
                if (bestPrize)
                {
                    resultMsgTxt.text          = skinItem;
                    resultPanelPrizeImg.sprite = skinPrize;
                    playerData.GetOwnedShipsIDs().Add(skinPrizeId);
                    hasPrize = true;
                }
                else
                {
                    resultMsgTxt.text = twoPointsSkinsWarningJackPot;
                }
                break;
            }
            PlayerStatusService.SavePlayerStatus(playerData);

            return(hasPrize);
        }