Exemple #1
0
 //When there is a manager, he works for you
 IEnumerator GenerateIncome()
 {
     while (true)
     {
         //no need to update revenue progress bar
         if (info.state.revenueProgressBarTime < 0.25f)
         {
             //Aproximate revenue per second when time is too little
             BigNumber.StdBigNumber aprox = new BigNumber.StdBigNumber(info.GetCurrentRevenue());
             aprox *= (int)(1.0f / info.state.revenueProgressBarTime);
             GameManager.instance.AddMoney(aprox);
             revenueProgressBar.fillAmount = 1.0f;
             timeLeftText.text             = "0";
             yield return(new WaitForSeconds(1.0f));
         }
         else
         {
             while (currentTime < info.state.revenueProgressBarTime)
             {
                 currentTime += (Time.deltaTime + 0.05f);
                 UpdateRevenueProgressBarUI();
                 UpdateTimeUI();
                 yield return(new WaitForSeconds(0.05f));
             }
             currentTime = 0.0f;
             UpdateRevenueProgressBarUI();
             UpdateTimeUI();
             GameManager.instance.AddMoney(info.GetCurrentRevenue());
         }
     }
 }
Exemple #2
0
 public string GetCurrentRevenue()   //Get revenue multiplied by bonus multiplier
 {
     if (state.currentRevenueMultiplier == 0.0f)
     {
         return(state.currentRevenue);
     }
     BigNumber.StdBigNumber currRev = new BigNumber.StdBigNumber(state.currentRevenue);
     currRev *= (int)state.currentRevenueMultiplier;
     return(currRev.ToString());
 }
Exemple #3
0
 public void ShowStartUpScreen()
 {
     startUpWindow.SetActive(!startUpWindow.activeSelf);
     if (startUpWindow.activeSelf)
     {
         TimeSpan t = TimeTools.TimeSpentOffline();
         timeSpentOffline.text = Mathf.Floor((float)t.TotalHours) + "h " + t.Minutes + "m " + t.Seconds + "s";
         BigNumber.StdBigNumber earnedOffline = GameManager.instance.HowMuchEarnedOffline();
         earnedWhileOffline.text = MoneyTools.GetFormatedMoneyText(earnedOffline) + " " + MoneyTools.GetScaleName(earnedOffline);
     }
 }
Exemple #4
0
    void Invest()
    {
        if (GameManager.instance.HasEnoughMoney(info.state.currentInvestCost) && info.state.currentUnlock <= info.unlocks.Count - 1 || info.state.currentLevel == 0)
        {
            if (info.state.currentLevel < info.unlocks[info.unlocks.Count - 1].levelToUnlock)
            {
                //Add level
                info.state.currentLevel++;

                //Everytime you invest increase revenue
                BigNumber.StdBigNumber currentRev = new BigNumber.StdBigNumber(info.state.currentRevenue);
                BigNumber.StdBigNumber revToAdd   = new BigNumber.StdBigNumber(info.startingRevenue);
                currentRev += revToAdd;
                info.state.currentRevenue = currentRev.ToString();
                UpdateRevenueText();

                GameManager.instance.audioManager.PlaySound(SoundType.INVEST);

                if (info.state.currentLevel >= info.unlocks[info.state.currentUnlock].levelToUnlock && info.state.currentLevel != 0 && info.state.currentUnlock < info.unlocks.Count - 1)
                {
                    info.state.currentUnlock++;
                    //Every unlock the revenue progress Bar Time shortens by a multiplier
                    info.state.revenueProgressBarTime /= info.unlocks[info.state.currentUnlock].timeMultiplier;
                    GameManager.instance.audioManager.PlaySound(SoundType.UNLOCK);

                    //Create new UI Element for current unlock
                    currentUnlockUIElement.transform.SetParent(null, false);
                    Destroy(currentUnlockUIElement.gameObject);
                    currentUnlockUIElement = null;
                    GameManager.instance.ui.AddUnlockToUI(this);
                }
                if (info.state.currentLevel > 1)
                {
                    GameManager.instance.LoseMoney(info.state.currentInvestCost);
                }

                //also recalculate invest cost
                BigNumber.StdBigNumber startInvest = new BigNumber.StdBigNumber(info.startingInvestCost);
                BigNumber.StdBigNumber newInvest   = new BigNumber.StdBigNumber();

                //THIS CAUSED A BUG IN v1.0
                //newInvest += (int)Mathf.FloorToInt(startInvest * Mathf.Pow(info.coefficient, info.state.currentLevel));
                newInvest += (startInvest * (Mathf.FloorToInt(Mathf.Pow(info.coefficient, info.state.currentLevel) * 100))) / 100;

                info.state.currentInvestCost = newInvest.ToString();

                //Emit money particle
                GameManager.instance.ParticleAt(0, icon.transform.position);
                UpdateInvestButton();
                UpdateCurrentLevelUI();
            }
        }
    }