Exemple #1
0
 public void SmoothNumber(ref BigDouble smooth, BigDouble actual)
 {
     if (smooth > actual & actual == 0)
     {
         smooth -= (smooth - actual) / 10 + 0.1 * Time.deltaTime;
     }
     else if (Floor(smooth) < actual)
     {
         smooth += (actual - smooth) / 10 + 0.1 * Time.deltaTime;
     }
     else if (Floor(smooth) > actual)
     {
         smooth -= (smooth - actual) / 10 + 0.1 * Time.deltaTime;
     }
     else
     {
         smooth = actual;
     }
 }
Exemple #2
0
    public static void BigDoubleFill(BigDouble x, BigDouble y, ref Image fill)
    {
        float z;
        var   a = x / y;

        if (a < 0.001)
        {
            z = 0;
        }
        else if (a > 10)
        {
            z = 1;
        }
        else
        {
            z = (float)a.ToDouble();
        }
        fill.fillAmount = z;
    }
Exemple #3
0
    public BigDouble TotalPlasmaPerSecond()
    {
        BigDouble temp = 0;

        temp += data.productionUpgrade1Power * data.productionUpgrade1Level;
        temp += data.productionUpgrade2Power * data.productionUpgrade2Level;
        temp += data.productionUpgrade3Power * data.productionUpgrade3Level;
        temp += data.productionUpgrade4Power * data.productionUpgrade4Level;
        temp += data.productionUpgrade5Power * data.productionUpgrade5Level;
        temp += data.productionUpgrade6Power * data.productionUpgrade6Level;
        temp += data.productionUpgrade7Power * data.productionUpgrade7Level;
        temp += data.productionUpgrade8Power * data.productionUpgrade8Level;
        temp += data.productionUpgrade9Power * data.productionUpgrade9Level;
        temp += data.productionUpgrade10Power * data.productionUpgrade10Level;
        temp *= TotalBoost();
        temp *= Pow(1.1, prestige.prestigeULevels[1]);
        temp *= realm.RRBoost;
        return(temp);
    }
Exemple #4
0
    private void GiveChunkReward(ChunkGeneratingConfig cnfg, bool boss)
    {
        BigDouble left = BigDouble.ZERO;

        if (boss)
        {
            int       value  = PlayerData.Instance.MainChunk.Value;
            BigDouble amount = Singleton <EconomyHelpers> .Instance.GetRelicsFromBoss(value) * PlayerData.Instance.BoostersEffect[2].Value;

            Singleton <FundRunner> .Instance.AddRelicsToBackpak(amount);

            bool        flag   = ChunkRunner.IsLastChunkForNode(value);
            BiomeConfig value2 = Singleton <WorldRunner> .Instance.CurrentBiomeConfig.Value;
            left  = ((!flag) ? value2.MiniBossReward : value2.BossReward);
            left *= Singleton <CumulativeBonusRunner> .Instance.BonusMult[2].Value;
        }
        int[] array = new int[7];
        int   num   = 0;

        if (Random.Range(0f, 1f) < cnfg.TNTChance)
        {
            num = Random.Range(cnfg.TNTMin, cnfg.TNTMax + 1) * 8;
        }
        int num2 = 0;

        if (Random.Range(0f, 1f) < cnfg.DiamondChance)
        {
            num2 = Random.Range(cnfg.DiamondMin, cnfg.DiamondMax);
        }
        Singleton <FundRunner> .Instance.AddGems(num2 *PersistentSingleton <GameSettings> .Instance.GemBlockReward, "debugMenu", "debug");

        for (int i = 0; i < cnfg.MaxBlocks - num2 - num - cnfg.GoldBlockAverage; i++)
        {
            array[(int)cnfg.Materials.AllotObject()]++;
        }
        for (int j = 0; j < array.Length; j++)
        {
            PlayerData.Instance.BlocksInBackpack[j].Value += array[j];
        }
        left += cnfg.MaxBlocks * Singleton <WorldRunner> .Instance.CurrentBiomeConfig.Value.BlockReward * Singleton <CumulativeBonusRunner> .Instance.BonusMult[1].Value * PlayerData.Instance.BoostersEffect[1].Value;
        Singleton <FundRunner> .Instance.AddCoins(left);
    }
Exemple #5
0
    public void TestDiv()
    {
        {
            BigDouble bd1a = new BigDouble(200);
            BigDouble bd1b = new BigDouble(5);
            BigDouble bd1c = bd1a / bd1b;
            Assert.AreEqual(0.4, bd1c.Value, 0.0001);
            Assert.AreEqual(2u, bd1c.Exp);
            Assert.AreEqual(40.0, bd1c.RealValue, 0.001);
        }

        {
            BigDouble bd1a = new BigDouble(2000000);
            BigDouble bd1b = new BigDouble(500);
            BigDouble bd1c = bd1a / bd1b;
            Assert.AreEqual(0.4, bd1c.Value, 0.0001);
            Assert.AreEqual(4u, bd1c.Exp);
            Assert.AreEqual(4000.0, bd1c.RealValue, 0.001);
        }
    }
 public void Hit()
 {
     gamedata.health -= gamedata.dps;
     if (gamedata.health <= 0)
     {
         gamedata.money += BigDouble.Multiply(BigDouble.Ceiling(BigDouble.Divide(gamedata.healthcap, 100)), gamedata.kills + 3);
         if (gamedata.stage == gamedata.stagemax)
         {
             gamedata.kills += 1;
             if (gamedata.kills >= gamedata.killsMax)
             {
                 gamedata.kills     = 0;
                 gamedata.stagemax += 1;
                 gamedata.stage     = gamedata.stagemax;
             }
         }
         IsBossChecker();
         gamedata.health = gamedata.healthcap;
     }
 }
Exemple #7
0
    public GoldBoosterRunner(int booster)
    {
        SceneLoader instance = SceneLoader.Instance;

        GoldBoosterIndex  = booster;
        BoosterCost.Value = PersistentSingleton <GameSettings> .Instance.GoldBoosterPrices[GoldBoosterIndex];
        BoosterName.Value = PersistentSingleton <LocalizationService> .Instance.Text("GemBooster.Title." + (GoldBoosterEnum)GoldBoosterIndex);

        BoosterDescription.Value = PersistentSingleton <LocalizationService> .Instance.Text("GemBooster.Desc." + (GoldBoosterEnum)GoldBoosterIndex);

        ReadOnlyReactiveProperty <BiomeConfig> source = (from chunk in PlayerData.Instance.LifetimeChunk
                                                         select Singleton <EconomyHelpers> .Instance.GetBiomeConfig(chunk)).TakeUntilDestroy(instance).ToReadOnlyReactiveProperty();

        BoosterReward = (from biome in source
                         select biome.BlockReward * PersistentSingleton <GameSettings> .Instance.GoldBoosterMultipliers[GoldBoosterIndex] into reward
                         select BigDouble.Max(reward, PersistentSingleton <GameSettings> .Instance.GoldBoosterMinRewards[GoldBoosterIndex])).TakeUntilDestroy(instance).ToReadOnlyReactiveProperty();
        BoosterAvailable = BoosterCost.CombineLatest(PlayerData.Instance.Gems, (int cost, int gems) => cost <= gems).TakeUntilDestroy(instance).ToReadOnlyReactiveProperty();
        ActiveBooster    = (from active in Singleton <GoldBoosterCollectionRunner> .Instance.ActiveBooster
                            select active == GoldBoosterIndex).TakeUntilDestroy(instance).ToReadOnlyReactiveProperty();
    }
    public void Update()
    {
        var data = game.data;

        ArrayManager();
        UI();

        positronsToGet = Log10(data.quarks + 1);

        data.quarks += quarksPerSec * Time.deltaTime;

        void UI()
        {
            if (upgradesGroup.gameObject.activeSelf)
            {
                game.SmoothNumber(ref quarksTemp, data.quarks);

                for (var i = 0; i < 3; i++)
                {
                    upgradeText[i].text = $"({realm2UpgradeLevels[i]}) {upgradeNames[i]}\nCost: {Methods.NotationMethod(realm2UpgradeCosts[i], "F2")}";
                    Methods.BigDoubleFill(data.quarks, realm2UpgradeCosts[i], ref upgradeFill[i]);
                    Methods.BigDoubleFill(quarksTemp, realm2UpgradeCosts[i], ref upgradeFillSmooth[i]);
                }
            }

            if (prestigeGroup.gameObject.activeSelf)
            {
                prestigeText.text = $"+{Methods.NotationMethod(positronsToGet, "F0")} Positrons";
            }

            if (!game.realm.Realm2.gameObject.activeSelf)
            {
                return;
            }
            quarksText.text           = $"Quarks:{Methods.NotationMethod(data.quarks, "F2")}";
            positronText.text         = $"Positrons: {Methods.NotationMethod(data.positrons, "F0")}\n{Methods.NotationMethod(positronBoost, "F2")}x boost";
            realmClickText.text       = $"Click\n+{Pow(totalClickPower, 1 / taxesExponentFactorClick):F2}x Quarks";
            realmQuarkPerSecText.text = $"{Methods.NotationMethod(quarksPerSec, "F2")} Quarks/s";
            realmSoftCapText.text     = $"Hadron Particle Tax:\n{Methods.NotationMethod(taxesMultPerSecond(), "F2")} less Quarks/s\n {Methods.NotationMethod(taxesMultPerClick(), "F2")}x less Quarks per Click";
        }
    }
Exemple #9
0
    public static string NotationMethod(BigDouble x, string y)
    {
        if (x <= 1000)
        {
            return(x.ToString(y));
        }
        switch (NotationSettings)
        {
        case 0:
        {
            var exponent = Floor(Log10(Abs(x)));
            var mantissa = x / Pow(10, exponent);
            return(mantissa.ToString("F2") + "e" + exponent);
        }

        case 1:
        {
            var exponent = 3 * Floor(Floor(Log10(x)) / 3);
            var mantissa = x / Pow(10, exponent);
            return(mantissa.ToString("F2") + "e" + exponent);
        }

        case 2:
        {
            var exponent      = Floor(Log10(x));
            var thirdExponent = 3 * Floor(exponent / 3);
            var mantissa      = x / Pow(10, thirdExponent);

            if (x <= 1000)
            {
                return(x.ToString("F2"));                   // Normal Number
            }
            if (x >= 1e308)
            {
                return(mantissa.ToString("F2") + "e" + thirdExponent);                                // over 1e78 eng notation
            }
            return((x / Pow(10, thirdExponent)).ToString("F2") + prefixes[thirdExponent.ToDouble()]); //word notation
        }
        }
        return("");
    }
Exemple #10
0
    public void FullReset()
    {
        //paint
        paint          = 10;
        paintPerSecond = 0;
        nextColorsCost = 7.28e3;

        //colors
        colorUpgradePower[0] = 1;
        colorUpgradeLevel[0] = 0;
        colorUpgradeCost[0]  = 10;

        colorUpgradePower[1] = 5;
        colorUpgradeLevel[1] = 0;
        colorUpgradeCost[1]  = 25;

        colorUpgradePower[2] = 25;
        colorUpgradeLevel[2] = 0;
        colorUpgradeCost[2]  = 125;

        colorUpgradePower[3] = 20000;
        colorUpgradeLevel[3] = 0;
        colorUpgradeCost[3]  = 65000;

        colorUpgradePower[4] = 100000;
        colorUpgradeLevel[4] = 0;
        colorUpgradeCost[4]  = 200000;

        colorUpgradePower[5] = 225000;
        colorUpgradeLevel[5] = 0;
        colorUpgradeCost[5]  = 500000;

        //dye
        dye      = 0;
        dyeToGet = 1;

        paintBoost     = 1;
        paintBoostCost = 10;
        dyeBoost       = 1;
        dyeBoostCost   = 1.28e3;
    }
Exemple #11
0
    private void UpdateAchievement(string name, BigDouble number, ref BigDouble level, ref Image fill, ref Text title, ref Text progress)
    {
        var cap = BigDouble.Pow(10, level);

        title.text    = $"{name}\n({level})";
        progress.text = $"{NotationMethod(number, "F2")}/{NotationMethod(cap, "F2")}";

        BigDoubleFill(number, cap, fill);

        if (number < cap)
        {
            return;
        }
        BigDouble levels = 0;

        if (number / cap >= 1)
        {
            levels = Floor(Log10(number / cap)) + 1;
        }
        level += levels;
    }
Exemple #12
0
    public void LevelSkip(int skipAmount)
    {
        int value = PlayerData.Instance.MainChunk.Value;

        SkippingLevels.Value = true;
        for (int i = 0; i < skipAmount; i++)
        {
            Singleton <WorldRunner> .Instance.IncreaseChunk();
        }
        Singleton <WorldRunner> .Instance.LevelSkip();

        (from seq in Singleton <WorldRunner> .Instance.MapSequence
         where !seq
         select seq).Take(1).Subscribe(delegate
        {
            SkippingLevels.Value = false;
        }).AddTo(SceneLoader.Instance);
        int value2 = PlayerData.Instance.MainChunk.Value;
        ChunkGeneratingConfig chunkGeneratingConfig = Singleton <EconomyHelpers> .Instance.GetChunkGeneratingConfig(value2, bossFight : false);

        BigDouble bigDouble = chunkGeneratingConfig.MaxBlocks * Singleton <WorldRunner> .Instance.CurrentBiomeConfig.Value.BlockReward * Singleton <CumulativeBonusRunner> .Instance.BonusMult[1].Value * PlayerData.Instance.BoostersEffect[1].Value * PersistentSingleton <GameSettings> .Instance.ChunksMoneysAfterSkip;

        CoinReward.Value = bigDouble;
        Singleton <FundRunner> .Instance.AddCoins(bigDouble);

        int[] array = new int[5];
        for (int j = 0; j < chunkGeneratingConfig.MaxBlocks - chunkGeneratingConfig.GoldBlockAverage; j++)
        {
            array[(int)chunkGeneratingConfig.Materials.AllotObject()]++;
        }
        for (int k = 0; k < array.Length; k++)
        {
            long num = (long)((float)(array[k] * skipAmount) * PersistentSingleton <GameSettings> .Instance.ResourceMultAfterSkip);
            PlayerData.Instance.BlocksInBackpack[k].Value += num;
            SkippedResources[k] = num;
        }
        SkippedCompanions[0] = Singleton <EconomyHelpers> .Instance.GetNumUnlockedHeroes(value);

        SkippedCompanions[1] = Singleton <EconomyHelpers> .Instance.GetNumUnlockedHeroes(value2);
    }
Exemple #13
0
    public bool Update()
    {
        if (m_speed == BigDouble.ZERO)
        {
            return(false);
        }
        BigDouble bigDouble = m_speed * Time.deltaTime;

        m_current += bigDouble;
        if (bigDouble > BigDouble.ZERO)
        {
            if (m_current > m_target)
            {
                DoneRolling();
            }
        }
        else if (m_current < m_target)
        {
            DoneRolling();
        }
        return(true);
    }
Exemple #14
0
    private void GetUpgradeMax(int hero, int level, BigDouble max, out BigDouble cost, out int lvls)
    {
        HeroConfig heroConfig = PersistentSingleton <Economies> .Instance.Heroes[hero];

        lvls = 1;
        cost = GetUpgradeCost(hero, level);
        GetPerkMilestoneLevel(level, out int _, out int next);
        if (hero == 0)
        {
            next = GetNextSkillUnlockLevel();
        }
        while (true)
        {
            BigDouble upgradeCost = GetUpgradeCost(hero, level + lvls);
            if (cost + upgradeCost > max || level + lvls == next)
            {
                break;
            }
            cost += upgradeCost;
            lvls++;
        }
    }
Exemple #15
0
    public void CollectRandomReward(Transform start)
    {
        spawnedRewards--;
        int     num      = rewards.AllotObject();
        Vector3 position = start.position;

        switch (num)
        {
        case 0:
        {
            BigDouble bigDouble = Singleton <WorldRunner> .Instance.MainBiomeConfig.Value.BlockReward * 100L;
            Singleton <FundRunner> .Instance.AddCoins(bigDouble);

            BindingManager.Instance.UICoinsTarget.SlerpFromHud(position);
            TextSlerpHelper.SlerpUITextBigText(bigDouble, position);
            break;
        }

        case 1:
            Singleton <FundRunner> .Instance.AddKeys(1, "collectableReward");

            BindingManager.Instance.UIKeysTarget.SlerpFromHud(position);
            TextSlerpHelper.SlerpUITextBigText(new BigDouble(1.0), position);
            break;

        case 2:
            Singleton <FundRunner> .Instance.AddGems(1, "collectableReward", "rewards");

            BindingManager.Instance.UIGemsTarget.SlerpFromHud(position);
            TextSlerpHelper.SlerpUITextBigText(new BigDouble(1.0), position);
            break;

        case 3:
            Singleton <FundRunner> .Instance.AddNormalChests(1, "collectableReward");

            BindingManager.Instance.UIChestsTarget.SlerpFromHud(position);
            break;
        }
    }
Exemple #16
0
    protected void Start()
    {
        Text textField = GetComponent <Text>();

        BigDouble[] previousHealth = new BigDouble[5]
        {
            BigDouble.ZERO,
            BigDouble.ZERO,
            BigDouble.ZERO,
            BigDouble.ZERO,
            BigDouble.ZERO
        };
        int current = 0;

        (from moving in Singleton <CameraMoveRunner> .Instance.IsCameraMoving
         where !moving
         select moving).DelayFrame(1).Subscribe(delegate
        {
            for (int i = 0; i < previousHealth.Length; i++)
            {
                previousHealth[i] = Singleton <ChunkRunner> .Instance.CurrentChunkHealth.Value;
            }
        }).AddTo(this);
        (from _ in TickerService.MasterTicks
         select BigDouble.Max(BigDouble.ZERO, previousHealth[current] - Singleton <ChunkRunner> .Instance.CurrentChunkHealth.Value) * 2L).Subscribe(delegate(BigDouble dps)
        {
            textField.text          = BigString.ToString(dps);
            previousHealth[current] = Singleton <ChunkRunner> .Instance.CurrentChunkHealth.Value;
            if (current == previousHealth.Length - 1)
            {
                current = 0;
            }
            else
            {
                current++;
            }
        }).AddTo(this);
    }
Exemple #17
0
    public BigDouble TotalPowerPerSecond()
    {
        BigDouble temp = 0;

        temp += (1 - (1 * pollution.pollutionBoost)) * data.productionUpgrade1Level;
        temp += (5 - (5 * pollution.pollutionBoost)) * data.productionUpgrade2Level;
        temp += (10 - (10 * pollution.pollutionBoost)) * data.productionUpgrade3Level;
        temp += (100 - (100 * pollution.pollutionBoost)) * data.productionUpgrade4Level;
        temp += (1e3 - (1e3 * pollution.pollutionBoost)) * data.productionUpgrade5Level;
        temp += (1e4 - (1e4 * pollution.pollutionBoost)) * data.productionUpgrade6Level;
        temp += (1e7 - (1e7 * pollution.pollutionBoost)) * data.productionUpgrade7Level;
        temp += (1e10 - (1e10 * pollution.pollutionBoost)) * data.productionUpgrade8Level;
        if (data.infusionULevel1 > 0)
        {
            temp += temp * (0.05 * data.infusionULevel1);
        }
        if (data.byteInfusionULevel1 > 0)
        {
            temp += temp * (0.05 * data.byteInfusionULevel1);
        }
        if (temp <= 0)
        {
            temp = 0;
        }
        if (data.hasMastered)
        {
            temp += dysonSphere.SpherePowerPerSec();
        }
        if (data.isConsoleUnlocked)
        {
            temp *= console.BytesBoost();
        }
        if (data.isConsoleOn)
        {
            temp -= 10;
        }
        return(temp);
    }
Exemple #18
0
    public BigDouble SpherePowerPerSec()
    {
        var       data = game.data;
        BigDouble temp = 0;

        if (data.array1Complete)
        {
            temp += 1e30;
        }
        if (data.array2Complete)
        {
            temp += 1e50;
        }
        if (data.array3Complete)
        {
            temp += 1e70;
        }
        if (data.sacraficeULevel1 > 0)
        {
            temp *= 1.75 * data.sacraficeULevel1;
        }
        return(temp);
    }
Exemple #19
0
    public BigDouble GetCoinRewardAmount(RewardEnum type, int chunk)
    {
        BigDouble bigDouble = Singleton <EconomyHelpers> .Instance.GetBiomeConfig(chunk).BlockReward;

        switch (type)
        {
        case RewardEnum.AddToCoinsSmall:
            bigDouble *= PersistentSingleton <GameSettings> .Instance.GoldBoosterMultipliers[0];
            bigDouble  = BigDouble.Max(bigDouble, PersistentSingleton <GameSettings> .Instance.GoldBoosterMinRewards[0]);
            break;

        case RewardEnum.AddToCoinsMedium:
            bigDouble *= PersistentSingleton <GameSettings> .Instance.GoldBoosterMultipliers[1];
            bigDouble  = BigDouble.Max(bigDouble, PersistentSingleton <GameSettings> .Instance.GoldBoosterMinRewards[1]);
            break;

        case RewardEnum.AddToCoinsLarge:
            bigDouble *= PersistentSingleton <GameSettings> .Instance.GoldBoosterMultipliers[2];
            bigDouble  = BigDouble.Max(bigDouble, PersistentSingleton <GameSettings> .Instance.GoldBoosterMinRewards[2]);
            break;
        }
        return(bigDouble);
    }
    private void UpdateAchievements(string name, BigDouble number, ref BigDouble level, ref Image fill, ref Text title, ref Text progress)
    {
        var cap = Pow(10, level);

        if (game.achievementsGroup.gameObject.activeSelf)
        {
            title.text = $"{name}\n({level})";
        }
        progress.text = $"{Methods.NotationMethod(number, "F2")} / {Methods.NotationMethod(cap, "F2")}";

        Methods.BigDoubleFill(number, cap, ref fill);

        if (number < cap)
        {
            return;
        }
        BigDouble levels = 0;

        if (number / cap >= 1)
        {
            levels = Floor(Log10(number / cap)) + 1;
        }
        level += levels;
    }
    public async void LoadOfflineProduction()
    {
        var data = game.data;

        if (data.offlineProgressCheck)
        {
            var tempOfflineTime = Convert.ToInt64(PlayerPrefs.GetString("OfflineTime"));
            var oldTime         = DateTime.FromBinary(tempOfflineTime);
            var currentTime     = await AwaitGetUTCTIme();

            var difference  = currentTime.Subtract(oldTime);
            var rawTime     = (float)difference.TotalSeconds;
            var offlineTime = rawTime / 10;

            offlinePopUp.gameObject.SetActive(true);
            TimeSpan timer = TimeSpan.FromSeconds(rawTime);
            timeAwayText.text = $"You were away for\n<color=#FF0000>{timer:dd\\:hh\\:mm\\:ss}</color>";

            BigDouble plasmaGains = game.TotalPlasmaPerSecond() * offlineTime;
            data.plasma          += plasmaGains;
            data.plasmaCollected += plasmaGains;
            GainText.text         = $"You Earned:\n<color=#00FF04>+{Methods.NotationMethod(plasmaGains, "F2")} Plasma</color>";
        }
    }
Exemple #22
0
    private void CloudSyncOrUpload(JSONObject json, string reason)
    {
        m_cloudSave = null;
        BigDouble a = -1L;

        if (json != null && json.HasField("Base"))
        {
            json = json.GetField("Base");
            if (json != null && json.HasField("Value"))
            {
                string val = PlayFabService.JSONUnescape(json.asString("Value", () => string.Empty));
                m_cloudSave = JSONObject.Create(val);
                a           = m_cloudSave.asBigDouble("LifetimeCoins", () => - 1L);
            }
        }
        if (m_cloudSave != null && ShouldForceUpdate(m_cloudSave))
        {
            Debug.LogError("Show Force Update");
            // ForceUpdateService.ShowForceUpdateDialog();
        }
        else if (m_cloudSave != null && IsCloudNewer(m_cloudSave, PlayerData.Instance))
        {
            LocalProgress.Value = PlayerData.Instance.LifetimeCoins.Value;
            CloudProgress.Value = BigDouble.Max(a, 0L);
            Observable.Return(value: true).Delay(TimeSpan.FromSeconds(3.0)).Take(1)
            .Subscribe(delegate
            {
                BindingManager.Instance.CloudSyncPopup.SetActive(value: true);
            })
            .AddTo(SceneLoader.Instance);
        }
        else
        {
            UploadSaveToCloud(PlayerData.Instance, reason, null, null);
        }
    }
Exemple #23
0
    public void TestAddSub()
    {
        BigDouble bd1a = new BigDouble(5.0, 10000u);
        BigDouble bd1b = new BigDouble(3.0, 10000u);
        BigDouble bd1c = bd1a - bd1b;

        Assert.AreEqual(0.2, bd1c.Value, 0.0001);
        Assert.AreEqual(10001u, bd1c.Exp);

        BigDouble bd6  = new BigDouble(1.0, 10000u);
        BigDouble bd6b = bd6;

        Assert.AreEqual(1.0, bd6.Value, 0.0001);
        Assert.AreEqual(10000u, bd6.Exp);
        BigDouble bd6c = bd6 + bd6b;

        Assert.AreEqual(0.2, bd6c.Value, 0.0001);
        Assert.AreEqual(10001u, bd6c.Exp);

        BigDouble bd6d = bd6c - bd6;

        Assert.AreEqual(0.2, bd6c.Value, 0.0001);
        Assert.AreEqual(10001u, bd6c.Exp);
    }
Exemple #24
0
        public bool PerformDataValidation()
        {
            var charSet     = this.DataToCode.Distinct().OrderBy(x => x).ToArray();
            var propCharSet = this.Probabilities.Select(x => x.Key).Distinct().OrderBy(x => x).ToArray();

            if (charSet.Length != propCharSet.Length || !charSet.SequenceEqual(propCharSet))
            {
                return(false);
            }

            BigDouble sum = BigDouble.ZERO;

            foreach (var prob in this.Probabilities)
            {
                if (prob.Value < BigDouble.ZERO || prob.Value > BigDouble.ONE)
                {
                    return(false);
                }

                sum += prob.Value;
            }

            return(sum == BigDouble.ONE);
        }
Exemple #25
0
    public void FullReset()
    {
        life           = 0;
        lifeClickValue = 1;

        souls      = 0;
        soulsBoost = 1;
        soulsToGet = 0;

        darkSouls  = 0;
        lightSouls = 0;

        clickUpgrade1Cost = 10;
        clickUpgrade2Cost = 25;
        clickUpgrade3Cost = 100;
        clickUpgrade4Cost = 250;
        clickUpgrade5Cost = 1000;
        clickUpgrade6Cost = 2500;

        productionUpgrade1Cost = 25;
        productionUpgrade2Cost = 75;
        productionUpgrade3Cost = 200;
        productionUpgrade4Cost = 350;
        productionUpgrade5Cost = 900;
        productionUpgrade6Cost = 1500;

        productionUpgrade1Power = 1;
        productionUpgrade2Power = 5;
        productionUpgrade3Power = 10;
        productionUpgrade4Power = 25;
        productionUpgrade5Power = 50;
        productionUpgrade6Power = 125;

        clickUpgrade1Power = 1;
        clickUpgrade2Power = 5;
        clickUpgrade3Power = 15;
        clickUpgrade4Power = 25;
        clickUpgrade5Power = 75;
        clickUpgrade6Power = 200;

        productionUpgrade1Level = 0;
        productionUpgrade2Level = 0;
        productionUpgrade3Level = 0;
        productionUpgrade4Level = 0;
        productionUpgrade5Level = 0;
        productionUpgrade6Level = 0;

        clickUpgrade1Level = 0;
        clickUpgrade2Level = 0;
        clickUpgrade3Level = 0;
        clickUpgrade4Level = 0;
        clickUpgrade5Level = 0;
        clickUpgrade6Level = 0;

        clickMultiplier1      = 2.00;
        clickMultiplier2      = 3.50;
        productionMultiplier1 = 2.00;
        productionMultiplier2 = 3.50;

        clickMultiplier1Cost      = 500;
        clickMultiplier2Cost      = 10000;
        productionMultiplier1Cost = 1000;
        productionMultiplier2Cost = 25000;

        soulsMultiplier1      = 1.5;
        soulsMultiplier2      = 3.5;
        soulsMultiplier1Cost  = 10000;
        soulsMultiplier2Cost  = 1000000;
        soulsMultiplier1Level = 0;
        soulsMultiplier2Level = 0;

        clickMultiplier1Level      = 0;
        clickMultiplier2Level      = 0;
        productionMultiplier1Level = 0;
        productionMultiplier2Level = 0;

        screenResolutionIndex = 0;
    }
 public BigDouble Cost() => clickUpgradeBaseCost *BigDouble.Pow(clickUpgradeCostMult, controller.data.clickUpgradeLevel);
Exemple #27
0
 public void AddCoins(BigDouble coins)
 {
     Coins.Value += coins;
 }
Exemple #28
0
    private IEnumerator StaggerOverFlowDamage(BigDouble damage, int ticksLeft)
    {
        yield return(null);

        Singleton <ChunkRunner> .Instance.OverFlowExcessDamage(damage, base.transform.position, ticksLeft);
    }
Exemple #29
0
    public PlayerData()
    {
        power         = 10;
        kuakaCoin     = 1;
        flameCoin     = 1;
        notationType  = 0;
        frameRateType = 0;
        audioType     = 0;

        currentDay       = 0;
        UTCtime          = DateTime.UtcNow;
        dailyRewardReady = false;

        offlineProgressCheck = false;

        hasMastered              = false;
        hasPrestiged             = false;
        isKuakaCoinUnlocked      = false;
        isFlameCoinUnlocked      = false;
        hasAchievementsBeenReset = false;
        isHyperUnlocked          = false;

        #region Upgrades
        productionUpgrade1Level = 0;
        productionUpgrade2Level = 0;
        productionUpgrade3Level = 0;
        productionUpgrade4Level = 0;
        productionUpgrade5Level = 0;
        productionUpgrade6Level = 0;
        productionUpgrade7Level = 0;
        productionUpgrade8Level = 0;

        productionUpgrade1Power = 10;
        productionUpgrade2Power = 50;
        productionUpgrade3Power = 100;
        productionUpgrade4Power = 1e3;
        productionUpgrade5Power = 1e4;
        productionUpgrade6Power = 1e5;
        productionUpgrade7Power = 1e7;
        productionUpgrade8Power = 1e10;
        #endregion

        currentPollution = 0;

        isCompleted0 = true;
        isCompleted1 = false;
        isCompleted2 = false;
        isCompleted3 = false;
        isCompleted4 = false;
        isCompleted5 = false;
        isCompleted6 = false;
        isCompleted7 = false;

        researchIndex = 0;

        #region hyperStuff
        isHyperCompleted0 = true;
        isHyperCompleted1 = false;
        isHyperCompleted2 = false;
        isHyperCompleted3 = false;
        isHyperCompleted4 = false;
        isHyperCompleted5 = false;
        isHyperCompleted6 = false;
        isHyperCompleted7 = false;
        isHyperCompleted8 = false;
        isHyperCompleted9 = false;

        hyperIndex = 0;
        #endregion

        transformers    = 0;
        superConductors = 0;

        array1Complete = false;
        array2Complete = false;
        array3Complete = false;



        #region Challenges
        challengeLevel1 = 0;
        challengeLevel2 = 0;
        challengeLevel3 = 0;
        amps            = 0;

        isChallenge1Active   = false;
        isChallenge2Active   = false;
        isChallenge3Active   = false;
        isChallengesUnlocked = false;
        #endregion

        #region Sacrafices
        sacraficeULevel1 = 0;
        sacraficeULevel2 = 0;
        sacraficeULevel3 = 0;

        issacraficesUnlocked = false;
        infusionIndex        = 0;
        #endregion

        #region Breaking
        isGen1Broken = false;
        isGen2Broken = false;
        isGen3Broken = false;
        isGen4Broken = false;
        isGen5Broken = false;
        isGen6Broken = false;
        isGen7Broken = false;
        isGen8Broken = false;
        #endregion

        #region achievements
        isAchievement1Locked  = true;
        isAchievement2Locked  = true;
        isAchievement3Locked  = true;
        isAchievement4Locked  = true;
        isAchievement5Locked  = true;
        isAchievement6Locked  = true;
        isAchievement7Locked  = true;
        isAchievement8Locked  = true;
        isAchievement9Locked  = true;
        isAchievement10Locked = true;
        isAchievement11Locked = true;
        #endregion

        #region Black Hole Bomb
        isBHBUnlocked = false;
        hc1Level      = 0;
        hc2Level      = 0;
        hc3Level      = 0;
        #endregion

        #region Automators
        isAuto1Unlocked = false;
        isAuto2Unlocked = false;
        isAuto3Unlocked = false;

        isAuto1On = false;
        isAuto2On = false;
        isAuto3On = false;

        isAutoUnlocked = false;
        #endregion

        #region Particles
        volatileIndex = 0;

        particleTotals[0] = 10;
        for (int i = 0; i < 11; i++)
        {
            particleTotals[i + 1] = 0;
            particleUnlockBool[i] = false;
        }


        for (int i = 0; i < 12; i++)
        {
            particleGenAmounts[i] = 0;
            particleGenLevels[i]  = 0;
        }
        #endregion

        #region Rays

        for (int i = 0; i < 12; i++)
        {
            rayTotals[i]     = 0;
            rayUnlockBool[i] = false;
        }
        for (int i = 0; i < 6; i++)
        {
            acceleratorLevels[i] = 0;
            fabLevels[i]         = 0;
            fabAmounts[i]        = 0;
        }
        omegaUpgrade1Level = 0;
        omegaUpgrade2Level = 0;
        #endregion

        isIdler1Unlocked = false;
        isIdler2Unlocked = false;
    }
Exemple #30
0
 public void CauseDamage(BigDouble damage)
 {
 }