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)); }
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)); }
private IEnumerator CorrectOldSavesImpl(Update1Data data, int coins) { yield return(new WaitUntil(() => Services.PlayerService.IsLoaded)); Services.PlayerService.SetCompanyCash(data.StoredBalance); Services.PlayerService.SetSecurities(data.Investors); Services.PlayerService.SetCoins(coins); yield return(new WaitUntil(() => Services.GenerationService.IsLoaded)); Services.GenerationService.Generators.AddProfitBoost( boost: BoostInfo.CreatePersist( id: "legacy_profit", value: data.PermanentProfitMultiplier)); Services.GenerationService.Generators.AddTimeBoost( boost: BoostInfo.CreatePersist( id: "legacy_time", value: data.PermanentSpeedMultiplier)); //Services.GenerationService.Generators.SetPermanentProfit(data.PermanentProfitMultiplier); //Services.GenerationService.Generators.SetPermanentTime(data.PermanentSpeedMultiplier); if (data.PermanentProfitMultipliers != null) { foreach (var kvp in data.PermanentProfitMultipliers) { //Services.GenerationService.Generators.SetPermanentProfit(kvp.Key, kvp.Value); Services.GenerationService.Generators.AddProfitBoost( generatorId: kvp.Key, boost: BoostInfo.CreatePersist( id: "legacy_profit", value: kvp.Value)); } } if (data.PermanentTimeMultipliers != null) { foreach (var kvp in data.PermanentTimeMultipliers) { //Services.GenerationService.Generators.SetPermanentTime(kvp.Key, kvp.Value); Services.GenerationService.Generators.AddTimeBoost( generatorId: kvp.Key, boost: BoostInfo.CreatePersist( id: "legacy_time", value: kvp.Value)); } } if (data.EnhancedGenerators != null) { foreach (var generator in data.EnhancedGenerators) { Services.GenerationService.Enhance(generator); } } if (data.HasMicromanager && !Services.PlayerService.IsHasMicromanager) { Services.PlayerService.SetHasMicromanager(true); } if (data.IsQuickBuyResearched && !Services.UpgradeService.IsQuickBuyResearched) { Services.UpgradeService.SetQuickBuyResearched(true); } Services.RewardsService.AddAvailableRewards(data.AvailableRewards); if (data.EarnedBadges != null) { foreach (var badgeId in data.EarnedBadges) { var badge = Services.BadgeService.GetUniqueData(badgeId); if (badge != null && !Services.BadgeService.IsBadgeEarned(badge)) { Services.BadgeService.EarnBadge(badge); } } } var globalProfit = data.GlobalProfitMultiplier < 1 ? 1 : data.GlobalProfitMultiplier; var globalTime = data.GlobalTimeMultiplier < 1 ? 1 : data.GlobalTimeMultiplier; Services.GenerationService.Generators.AddProfitBoost( boost: BoostInfo.CreateTemp("global_legacy_profit", globalProfit)); Services.GenerationService.Generators.AddTimeBoost( boost: BoostInfo.CreateTemp("global_legacy_time", globalTime)); //var generatorBonusMult = new GeneratorBonusMult(globalProfit, globalTime); //Services.GenerationService.Generators.ApplyGlobal(generatorBonusMult); UnityEngine.Debug.Log("Update1 complete"); }