コード例 #1
0
        //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);
            }
        }
コード例 #2
0
ファイル: GameManager.cs プロジェクト: blacknik/cliker
 public void AddMoney(StdBigNumber _amount)
 {
     money += _amount;
     ui.UpdateMoneyText(MoneyTools.GetFormatedMoneyText(money), MoneyTools.GetScaleName(money));
     if (onMoneyChanged != null)
     {
         onMoneyChanged();
     }
 }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
ファイル: GameManager.cs プロジェクト: blacknik/cliker
    public void AddMoney(string _amount)
    {
        StdBigNumber number = new StdBigNumber(_amount);

        money += number;
        ui.UpdateMoneyText(MoneyTools.GetFormatedMoneyText(money), MoneyTools.GetScaleName(money));
        if (onMoneyChanged != null)
        {
            onMoneyChanged();
        }
    }
コード例 #5
0
ファイル: GameManager.cs プロジェクト: blacknik/cliker
    public bool HasEnoughMoney(string _money)
    {
        StdBigNumber number = new StdBigNumber(_money);

        if (!money.ISmaller(number))
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
コード例 #6
0
ファイル: GameManager.cs プロジェクト: blacknik/cliker
    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
    }
コード例 #7
0
ファイル: GameManager.cs プロジェクト: blacknik/cliker
 //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)
 }
コード例 #8
0
        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(" ");
        }
コード例 #9
0
        //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(" ");
        }
コード例 #10
0
        //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));
                }
            }
        }