コード例 #1
0
    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]++;
    }
コード例 #2
0
    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);
    }