示例#1
0
        private string ResolveBoostId(BosCoinUpgradeData data)
        {
            switch (data.UpgradeType)
            {
            case UpgradeType.Profit:
            {
                if (data.GeneratorId < 0)
                {
                    return(data.IsPermanent ? BoostIds.GetPersistCoinUpgradeId(data.Id, false) : BoostIds.GetTempCoinUpgradeId(data.Id, false));
                }
                return(data.IsPermanent ? BoostIds.GetPersistLocalCoinUpId(data.Id, false) : BoostIds.GetTempLocalCoinUpId(data.Id, false));
            }

            case UpgradeType.Time:
            {
                if (data.GeneratorId < 0)
                {
                    return(data.IsPermanent ? BoostIds.GetPersistCoinUpId(data.Id, false) : BoostIds.GetTempCoinUpId(data.Id, false));
                }
                return(data.IsPermanent ? BoostIds.GetPersistCoinUpId(data.Id, false) : BoostIds.GetTempCoinUpId(data.Id, false));
            }

            default:
                return("");
            }
        }
示例#2
0
        private void UpgradeFutureBalance(BosCoinUpgradeData data)
        {
            TimeSpan timeSpan = TimeSpan.FromDays(data.DaysOfFutureBalance);
            //double value = Services.GenerationService.CalculateTotalProfitOnInterval((float)timeSpan.TotalSeconds);

            double value = Services.GenerationService.GetTotalProfitOnTime(timeSpan.TotalSeconds);

            Services.PlayerService.AddGenerationCompanyCash(value);
            Services.GetService <IConsoleService>().AddOutput($"add future balance => {value}", ConsoleTextColor.green, true);
        }
示例#3
0
 public void ApplyUpgrade(BosCoinUpgradeData data)
 {
     if (upgrades.ContainsKey(data.UpgradeType))
     {
         upgrades[data.UpgradeType](data);
     }
     else
     {
         Services.GetService <IConsoleService>().AddOutput($"Not founded upgrade for type => {data.UpgradeType}", ConsoleTextColor.red, true);
     }
 }
示例#4
0
 private void AddCoinPurchase(BosCoinUpgradeData data)
 {
     if (PurchasedCoinUpgrades.ContainsKey(data.Id))
     {
         PurchasedCoinUpgrades[data.Id]++;
     }
     else
     {
         PurchasedCoinUpgrades.Add(data.Id, 1);
     }
     GameEvents.OnShopItemPurchased(new ShopItemInfo(data.Id, data.GeneratorId, Price.CreateCoins(data.Price)));
 }
示例#5
0
 private void UpgradeTime(BosCoinUpgradeData data)
 {
     if (data.GeneratorId < 0)
     {
         if (data.IsPermanent)
         {
             //Generators.ApplyPermanent(GeneratorBonusMult.CreateTimeMult(data.TimeMultiplier));
             Generators.AddTimeBoost(
                 boost: BoostInfo.CreatePersist(
                     id: BoostIds.GetPersistCoinUpId(data.Id),
                     value: data.TimeMultiplier,
                     sourceType: (int)BoostSourceType.CoinUpgrade));
         }
         else
         {
             //Generators.ApplyGlobal(GeneratorBonusMult.CreateTimeMult(data.TimeMultiplier));
             Generators.AddTimeBoost(
                 boost: BoostInfo.CreateTemp(
                     id: BoostIds.GetTempCoinUpId(data.Id),
                     value: data.TimeMultiplier,
                     sourceType: (int)BoostSourceType.CoinUpgrade));
         }
     }
     else
     {
         if (data.IsPermanent)
         {
             //Generators.ApplyPermanent(data.GeneratorId, GeneratorBonusMult.CreateTimeMult(data.TimeMultiplier));
             Generators.AddTimeBoost(
                 generatorId: data.GeneratorId,
                 boost: BoostInfo.CreatePersist(
                     id: BoostIds.GetPersistCoinUpId(data.Id),
                     value: data.TimeMultiplier,
                     sourceType: (int)BoostSourceType.CoinUpgrade));
         }
         else
         {
             //Generators.ApplyTime(data.GeneratorId, data.TimeMultiplier);
             Generators.AddTimeBoost(
                 generatorId: data.GeneratorId,
                 boost: BoostInfo.CreateTemp(
                     id: BoostIds.GetTempCoinUpId(data.Id),
                     value: data.TimeMultiplier,
                     sourceType: (int)BoostSourceType.CoinUpgrade));
         }
     }
     //Services.GetService<IPlayerDataUpgrader>().Upgrade(new UpgradeItem(data.GeneratorId, data.TimeMultiplier, data.IsPermanent, data.UpgradeType));
 }
示例#6
0
    public override void Awake()
    {
        //var prot = GameData.instance.coinUpgrades.FirstOrDefault(val => val.Id == ItemId);
        BosCoinUpgradeData prot = Services.ResourceService.CoinUpgrades.GetData(ItemId);


        TargetId            = prot.GeneratorId;
        Name                = Services.ResourceService.Localization.GetString(prot.Name);
        Description         = Services.ResourceService.Localization.GetString(prot.Description);
        Price               = prot.Price;
        OneTimePurchase     = prot.IsOneTime;
        Permanent           = prot.IsPermanent;
        UpgradeType         = prot.UpgradeType;
        ProfitMultiplier    = prot.ProfitMutlitplier;
        TimeMultiplier      = prot.TimeMultiplier;
        DaysOfFutureBalance = prot.DaysOfFutureBalance;
    }
示例#7
0
        public TransactionState Purchase(BosCoinUpgradeData data)
        {
            if (data.IsOneTime && IsCoinUpgradePurchased(data))
            {
                return(TransactionState.AlreadyPurchased);
            }

            if (Services.PlayerService.IsEnoughCoins(data.Price))
            {
                Services.GetService <IShopUpgrader>().ApplyUpgrade(data);
                Services.PlayerService.RemoveCoins(data.Price);
                FacebookEventUtils.LogCoinSpendEvent(data.Name, data.Price, Services.PlayerService.Coins);
                AddCoinPurchase(data);
                return(TransactionState.Success);
            }
            else
            {
                return(TransactionState.DontEnoughCurrency);
            }
        }
示例#8
0
 private void UpgradeProfit(BosCoinUpgradeData data)
 {
     if (data.GeneratorId < 0)
     {
         if (data.IsPermanent)
         {
             //Generators.ApplyPermanent(GeneratorBonusMult.CreateProfitMult(data.ProfitMutlitplier));
             Generators.AddProfitBoost(
                 boost: BoostInfo.CreatePersist(BoostIds.GetPersistCoinUpgradeId(data.Id), data.ProfitMutlitplier, (int)BoostSourceType.CoinUpgrade));
         }
         else
         {
             //Generators.ApplyGlobal(GeneratorBonusMult.CreateProfitMult(data.ProfitMutlitplier));
             Generators.AddProfitBoost(
                 boost: BoostInfo.CreateTemp(BoostIds.GetTempCoinUpgradeId(data.Id), data.ProfitMutlitplier, (int)BoostSourceType.CoinUpgrade));
         }
     }
     else
     {
         if (data.IsPermanent)
         {
             //Generators.ApplyPermanent(data.GeneratorId, GeneratorBonusMult.CreateProfitMult(data.ProfitMutlitplier));
             Generators.AddProfitBoost(
                 generatorId: data.GeneratorId,
                 boost: BoostInfo.CreatePersist(BoostIds.GetPersistLocalCoinUpId(data.Id), data.ProfitMutlitplier, (int)BoostSourceType.CoinUpgrade));
         }
         else
         {
             //Generators.ApplyProfit(data.GeneratorId, ProfitMultInfo.Create(data.ProfitMutlitplier));
             Generators.AddProfitBoost(
                 generatorId: data.GeneratorId,
                 boost: BoostInfo.CreateTemp(BoostIds.GetTempLocalCoinUpId(data.Id), data.ProfitMutlitplier, (int)BoostSourceType.CoinUpgrade));
         }
     }
     //Services.GetService<IPlayerDataUpgrader>().Upgrade(new UpgradeItem(data.GeneratorId, data.ProfitMutlitplier, data.IsPermanent, data.UpgradeType));
 }
示例#9
0
 public bool IsCoinUpgradePurchased(BosCoinUpgradeData data)
 {
     return(PurchasedCoinUpgrades.ContainsKey(data.Id) && PurchasedCoinUpgrades[data.Id] > 0);
 }
示例#10
0
 private bool IsNotTeleportWhenEarthOrMoon(BosCoinUpgradeData data)
 {
     return(UpgradeUtils.IsNotTeleportWhenEarthOrMoon(data));
 }
示例#11
0
 private void UpgradeEnhance(BosCoinUpgradeData data)
 {
     Services.ManagerService.Enhance(Services.GenerationService.GetGetenerator(data.GeneratorId));
 }
示例#12
0
 private void UpgradeMicromanager(BosCoinUpgradeData data)
 {
     Services.PlayerService.SetHasMicromanager(true);
     Analytics.CustomEvent("BOOSTER_BOUGHT");
 }
示例#13
0
 private void UpgradeReward(BosCoinUpgradeData data)
 {
     Services.RewardsService.AddAvailableRewards(data.ProfitMutlitplier);
 }
示例#14
0
 private void UpgradeAdvertisimentBoost(BosCoinUpgradeData data)
 {
     LocalData.AdvertisementMultiplier = data.ProfitMutlitplier;
 }