public static void ProcessResouceGenPerkEffectsIntoStorage(List <ActivatedPerkData> allPerks) { ISupportController supportController = Service.Get <ISupportController>(); NodeList <GeneratorViewNode> nodeList = Service.Get <EntityController>().GetNodeList <GeneratorViewNode>(); for (GeneratorViewNode generatorViewNode = nodeList.Head; generatorViewNode != null; generatorViewNode = generatorViewNode.Next) { BuildingComponent buildingComp = generatorViewNode.BuildingComp; Building buildingTO = buildingComp.BuildingTO; BuildingTypeVO buildingType = buildingComp.BuildingType; Contract contract = supportController.FindCurrentContract(buildingComp.BuildingTO.Key); if (buildingType.Type == BuildingType.Resource && contract == null) { uint time = ServerTime.Time; uint lastCollectTime = buildingTO.LastCollectTime; buildingTO.LastCollectTime = time; int perkAdjustedAccruedCurrency = ResourceGenerationPerkUtils.GetPerkAdjustedAccruedCurrency(buildingType, lastCollectTime, time, allPerks); buildingTO.CurrentStorage += perkAdjustedAccruedCurrency; if (buildingTO.CurrentStorage > buildingType.Storage) { buildingTO.CurrentStorage = buildingType.Storage; } buildingTO.AccruedCurrency = buildingTO.CurrentStorage; } } }
public int GetAccruedCurrencyIncludingPerkAdjustedRate(BuildingTypeVO buildingVO, uint startTime, uint endTime) { return(ResourceGenerationPerkUtils.GetPerkAdjustedAccruedCurrency(buildingVO, startTime, endTime, this.GetPlayerActivatedPerks())); }