public override void Apply(AllManagers bman) { //Services.GenerationService.Generators.AddX2Time(Services.TimeService.Now.AddMinutes(10)); //Services.GenerationService.Generators.AddX2Profit(Services.TimeService.Now.AddMinutes(10)); if (Profit > 1) { Services.GenerationService.Generators.AddProfitBoost( BoostInfo.CreateTimed(BoostIds.RewardTempProfit(), Profit, Services.TimeService.UnixTimeInt + 10 * 60)); } if (Speed > 1) { Services.GenerationService.Generators.AddTimeBoost( BoostInfo.CreateTimed(BoostIds.RewardTempTime(), Speed, Services.TimeService.UnixTimeInt + 10 * 60)); } Player.LegacyPlayerData.Save(); StatsCollector.Instance[Stats.REWARDS_UNLOCKED]++; }
public void GiveRewards(Lootbox lb) { if (!lb.IsValid) { return; } var pdata = Player.LegacyPlayerData; foreach (var item in lb.Items) { switch (item.RewardType) { case LootboxRewardType.Generators: if (Services.TransportService.HasUnits(item.TargetGenerator)) { Services.TransportService.AddLiveUnits(item.TargetGenerator, (int)item.RewardValue); } else { var generator = Services.GenerationService.Generators.GetGeneratorInfo(item.TargetGenerator); Services.GenerationService.BuyGenerator(generator, true); //AllManagers.BalanceManager.BuyGenerator(generator, free: true); } break; case LootboxRewardType.ProfitUpgrade: if (item.TargetGenerator == -1) { Services.GenerationService.Generators.AddProfitBoost( boost: BoostInfo.CreateTimed( id: $"lootbox_{item.RewardType}_".GuidSuffix(5), value: item.RewardValue, endTime: Services.TimeService.UnixTimeInt + 600)); } else { if (Services.TransportService.HasUnits(item.TargetGenerator)) { Services.GenerationService.Generators.AddProfitBoost( generatorId: item.TargetGenerator, boost: BoostInfo.CreateTimed( id: $"lootbox_{item.RewardType}_".GuidSuffix(5), value: item.RewardValue, endTime: Services.TimeService.UnixTimeInt + 600)); } } break; case LootboxRewardType.SpeedUpgrade: if (item.TargetGenerator == -1) { Services.GenerationService.Generators.AddTimeBoost( boost: BoostInfo.CreateTimed( id: $"lootbox_{item.RewardType}_".GuidSuffix(5), value: item.RewardValue, endTime: Services.TimeService.UnixTimeInt + 600)); } else { if (Services.TransportService.HasUnits(item.TargetGenerator)) { Services.GenerationService.Generators.AddTimeBoost( generatorId: item.TargetGenerator, boost: BoostInfo.CreateTimed( id: $"lootbox_{item.RewardType}_".GuidSuffix(5), value: item.RewardValue, endTime: Services.TimeService.UnixTimeInt + 600)); } } break; case LootboxRewardType.Manager: // TODO : ?? Debug.Log("TODO: implement Lootbox manager reward"); break; case LootboxRewardType.Investors: //pdata.Investors += item.RewardValue; //pdata.LifeTimeInvestors += item.RewardValue; Services.PlayerService.AddSecurities(item.RewardValue.ToCurrencyNumber()); break; case LootboxRewardType.Balance: Player.AddGenerationCompanyCash(item.RewardValue); break; case LootboxRewardType.Coins: Player.AddCoins((int)item.RewardValue); break; case LootboxRewardType.CoinsAndBalance: Player.AddGenerationCompanyCash(item.RewardValue); Player.AddCoins((int)item.RewardValue2); break; case LootboxRewardType.PercentBalance: var q = Services.PlayerService.CompanyCash.Value * item.RewardValue; if (q < 20) { q = 20; } Player.AddGenerationCompanyCash(q); item.DescText = Currencies.DefaultCurrency.CreatePriceString(q, false, " "); break; default: break; } StatsCollector.Instance[Stats.REWARDS_UNLOCKED]++; } pdata.Save(); Analytics.CustomEvent(AnalyticsStrings.LOOTBOX_OPEN); }