//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()); } } }
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()); }
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); } }
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(); } } }