示例#1
0
 private void BuyTimeUpgradeVM(UpgradeData vm, bool free, int id, bool isInvestor)
 {
     if (id == -1)
     {
         GenerationService.Generators.AddTimeBoost(BoostInfo.CreateTemp(id: $"time_upgrade_{vm.Id}_".GuidSuffix(5), value: vm.Value));
     }
     else
     {
         GenerationService.Generators.AddTimeBoost(
             generatorId: id,
             boost: BoostInfo.CreateTemp(
                 id: $"time_upgrade_{vm.Id}_".GuidSuffix(5),
                 value: vm.Value));
     }
     if (!free)
     {
         if (isInvestor)
         {
         }
         else
         {
             Player.RemoveCompanyCash(vm.Price(() => {
                 return(BosUtils.GetUpgradePriceMult(ResourceService.Planets.GetPlanet(Planets.CurrentPlanet.Id), vm));
             }));
         }
     }
 }
示例#2
0
        public bool IsAllowBuy(UpgradeData data)
        {
            if (data.CurrencyType == CurrencyType.CompanyCash && IsBoughtCashUpgrade(data.Id))
            {
                return(false);
            }
            if (data.CurrencyType == CurrencyType.Securities && IsBoughtSecurityUpgrade(data.Id))
            {
                return(false);
            }
            Currency priceCurrency = Currency.Create(data.CurrencyType, data.Price(() => {
                return(BosUtils.GetUpgradePriceMult(Planets.CurrentPlanet.Data, data));
            }));

            if (data.GeneratorId >= 0)
            {
                if (Services.PlayerService.IsEnough(priceCurrency) &&
                    Services.TransportService.HasUnits(data.GeneratorId))
                {
                    return(true);
                }
            }
            else
            {
                return(Services.PlayerService.IsEnough(priceCurrency));
            }
            return(false);
        }
示例#3
0
        private void BuyFreeGenerators(UpgradeData vm, int id)
        {
            ITransportUnitsService transportService = GameServices.Instance.TransportService;

            if (transportService.HasUnits(id))
            {
                transportService.AddLiveUnits(id, (int)vm.Value);
                GlobalRefs.LevelManager.AddXP(XPSources.BuyUpgrade);
            }
            else
            {
                transportService.AddLiveUnits(id, (int)vm.Value);
                GlobalRefs.LevelManager.AddXP(XPSources.BuyGenerator * 10);
            }


            //PlayerData.Investors -= vm.Price;
            GameServices.Instance.PlayerService.RemoveSecurities(vm.Price(() => {
                return(BosUtils.GetUpgradePriceMult(ResourceService.Planets.GetPlanet(Planets.CurrentPlanet.Id), vm));
            }));
            GlobalRefs.LevelManager.AddXP(XPSources.BuyUpgrade);
        }