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(""); } }
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); }
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); } }
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))); }
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)); }
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; }
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); } }
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)); }
public bool IsCoinUpgradePurchased(BosCoinUpgradeData data) { return(PurchasedCoinUpgrades.ContainsKey(data.Id) && PurchasedCoinUpgrades[data.Id] > 0); }
private bool IsNotTeleportWhenEarthOrMoon(BosCoinUpgradeData data) { return(UpgradeUtils.IsNotTeleportWhenEarthOrMoon(data)); }
private void UpgradeEnhance(BosCoinUpgradeData data) { Services.ManagerService.Enhance(Services.GenerationService.GetGetenerator(data.GeneratorId)); }
private void UpgradeMicromanager(BosCoinUpgradeData data) { Services.PlayerService.SetHasMicromanager(true); Analytics.CustomEvent("BOOSTER_BOUGHT"); }
private void UpgradeReward(BosCoinUpgradeData data) { Services.RewardsService.AddAvailableRewards(data.ProfitMutlitplier); }
private void UpgradeAdvertisimentBoost(BosCoinUpgradeData data) { LocalData.AdvertisementMultiplier = data.ProfitMutlitplier; }