//Convert money to a formated string used alot in UI public static string GetFormatedMoneyText(StdBigNumber money) { int allDigits = money.DigitCount; if (allDigits <= 5) { return(money.ToString()); } else { int left = allDigits % 3; if (left == 0) { left = 3; } string moneyText = ""; for (int i = 0; i < left; i++) { moneyText += money.GetDigit(allDigits - i - 1).ToString(); } moneyText += ","; for (int i = 0; i < 2; i++) { moneyText += money.GetDigit(allDigits - left - i - 1).ToString(); } return(moneyText); } }
public void AddMoney(StdBigNumber _amount) { money += _amount; ui.UpdateMoneyText(MoneyTools.GetFormatedMoneyText(money), MoneyTools.GetScaleName(money)); if (onMoneyChanged != null) { onMoneyChanged(); } }
public static void SaveMoney(StdBigNumber money) { string path = Path.Combine(Application.persistentDataPath, "money.dat"); using (BinaryWriter writer = new BinaryWriter(File.Create(path))) { string moneyText = money.ToString(); writer.Write(moneyText); writer.Close(); } }
public void AddMoney(string _amount) { StdBigNumber number = new StdBigNumber(_amount); money += number; ui.UpdateMoneyText(MoneyTools.GetFormatedMoneyText(money), MoneyTools.GetScaleName(money)); if (onMoneyChanged != null) { onMoneyChanged(); } }
public bool HasEnoughMoney(string _money) { StdBigNumber number = new StdBigNumber(_money); if (!money.ISmaller(number)) { return(true); } else { return(false); } }
void Awake() { instance = this; //Set instance to this, so that you can access this script from anywhere MoneyTools.LoadScales(); //Load scales (number names like Million, Trillion, ect..) from xml file money = MoneyTools.LoadMoney(); //Load saved amount of money from binary file //Prepare everything for UI ui.UpdateMoneyText(MoneyTools.GetFormatedMoneyText(money), MoneyTools.GetScaleName(money)); LoadBusinessInfoAndSetupUI(); LoadManagersAndSetupUI(); LoadUpgradesAndSetupUI(); AddMoney(0); //Just to activate all listening buttons, waiting for a change }
//Load all scriptableObjects from resources folder and Load their runtime states from the binary files private void LoadBusinessInfoAndSetupUI() { earnedOffline = new StdBigNumber(0); System.TimeSpan t = CapitalistTools.TimeTools.TimeSpentOffline(); Object[] b = Resources.LoadAll("Businesses/", typeof(BusinessInfo)); if (b.Length > 0) { foreach (Object o in b) //For all businesses { BusinessInfo info = o as BusinessInfo; info.state = CapitalistTools.States.LoadBusinessState(info.name); if (info.state == null) { info.Reset(); } //if business is owned, calculate how much money earned while being offline if (info.state.currentTime > 0.0f && info.state.isOwned) { int timesLooped = 0; float newTime = 0.0f; info.state.currentTime += (float)t.TotalSeconds; if (info.state.hasManager) { newTime = info.state.currentTime % info.state.revenueProgressBarTime; timesLooped = (int)(info.state.currentTime / info.state.revenueProgressBarTime); } else if (info.state.hasManager == false) { if (info.state.currentTime > info.state.revenueProgressBarTime - 0.1f) { timesLooped = 1; newTime = 0.0f; } else { newTime = info.state.currentTime; } } info.state.currentTime = newTime; StdBigNumber earn = new StdBigNumber(info.GetCurrentRevenue()); earn *= timesLooped; earnedOffline += earn; } ui.AddBusinessToUI(info); } } money += earnedOffline; //Add total offline earnings from all businesses ui.SortBusinessesByCost(); //Sort businesses by cost so the cheapest shows up at top (in UI panel) }
public static string GetScaleName(StdBigNumber money) { int allDigits = money.DigitCount; if (allDigits > 5) { int left = allDigits % 3; if (left == 0) { left = 3; } int scale = allDigits - left; return(scales.scales[scale / 3 - 1]); } return(" "); }
//returns a scale name public static string GetScaleName(string moneyInString) { StdBigNumber number = new StdBigNumber(moneyInString); int allDigits = number.DigitCount; if (allDigits > 5) { int left = allDigits % 3; if (left == 0) { left = 3; } int scale = allDigits - left; return(scales.scales[scale / 3 - 1]); } return(" "); }
//Load money from file public static StdBigNumber LoadMoney() { string path = Path.Combine(Application.persistentDataPath, "money.dat"); FileInfo file = new FileInfo(path); if (file.Exists == false) { StdBigNumber money = new StdBigNumber(1); SaveMoney(money); return(money); } else { using (BinaryReader reader = new BinaryReader(File.Open(path, FileMode.Open))) { string moneyText = reader.ReadString(); reader.Close(); return(new StdBigNumber(moneyText)); } } }