Exemple #1
0
        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;
                }
            }
        }
Exemple #2
0
 public int GetAccruedCurrencyIncludingPerkAdjustedRate(BuildingTypeVO buildingVO, uint startTime, uint endTime)
 {
     return(ResourceGenerationPerkUtils.GetPerkAdjustedAccruedCurrency(buildingVO, startTime, endTime, this.GetPlayerActivatedPerks()));
 }