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)); })); } } }
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); }
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); }