Beispiel #1
0
        private int? CalcPartialCapacity(StarData starData, IEnumerable<PlanetoidData> planetoidsData, SettlementCmdData settlementData) {
            int count = settlementData != null ? planetoidsData.Count() + 2 : planetoidsData.Count() + 1;
            IList<int> sysMembersCapacity = new List<int>(count);

            if (starData.InfoAccessCntlr.HasAccessToInfo(Player, ItemInfoID.Capacity)) {
                sysMembersCapacity.Add(starData.Capacity);
            }
            foreach (var pData in planetoidsData) {
                var accessCntlr = pData.InfoAccessCntlr;
                if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Capacity)) {
                    sysMembersCapacity.Add(pData.Capacity);
                }
            }
            if (settlementData != null && settlementData.InfoAccessCntlr.HasAccessToInfo(Player, ItemInfoID.Capacity)) {
                sysMembersCapacity.Add(settlementData.Capacity);
            }

            if (sysMembersCapacity.Any()) {
                return sysMembersCapacity.Sum();
            }
            return null;
        }
        // 7.10.16 Eliminated usage of ElementReports to calculate partial Unit values.
        // 7.18.16 If Cmd's IntelCoverage does not allow full view of selected values
        // a partial value is calculated from element's data and their infoAccessCntlr. 

        public SettlementCmdReport(SettlementCmdData cmdData, Player player, ISettlementCmd_Ltd item)
            : base(cmdData, player, item) {
        }
 private SettlementCategory CalcPartialCmdCategory(SettlementCmdData cmdData) {
     if (UnitComposition != null) {
         return cmdData.GenerateCmdCategory(UnitComposition);
     }
     return SettlementCategory.None;
 }
 private BaseComposition CalcPartialUnitComposition(SettlementCmdData cmdData) {
     var elementsData = GetElementsData(cmdData).Cast<FacilityData>();
     IList<FacilityHullCategory> knownElementCategories = new List<FacilityHullCategory>();
     foreach (var eData in elementsData) {
         var accessCntlr = eData.InfoAccessCntlr;
         if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Category)) {
             knownElementCategories.Add(eData.HullCategory);
         }
     }
     if (knownElementCategories.Count > Constants.Zero) {
         // Player will always know about the HQElement (since knows Cmd) but Category may not yet be revealed
         return new BaseComposition(knownElementCategories);
     }
     return null;
 }
 public SettlementReportGenerator(SettlementCmdData data) {
     _data = data;
     _gameMgr = References.GameManager;
     _stringBuilder = new StringBuilder();
 }
Beispiel #6
0
        private ResourceYield? CalcPartialResources(StarData starData, IEnumerable<PlanetoidData> planetoidsData, SettlementCmdData settlementData) {
            int count = settlementData != null ? planetoidsData.Count() + 2 : planetoidsData.Count() + 1;
            IList<ResourceYield> sysMembersResources = new List<ResourceYield>(count);

            if (starData.InfoAccessCntlr.HasAccessToInfo(Player, ItemInfoID.Resources)) {
                sysMembersResources.Add(starData.Resources);
            }
            foreach (var pData in planetoidsData) {
                var accessCntlr = pData.InfoAccessCntlr;
                if (accessCntlr.HasAccessToInfo(Player, ItemInfoID.Resources)) {
                    sysMembersResources.Add(pData.Resources);
                }
            }
            if (settlementData != null && settlementData.InfoAccessCntlr.HasAccessToInfo(Player, ItemInfoID.Resources)) {
                sysMembersResources.Add(settlementData.Resources);
            }

            if (sysMembersResources.Any()) {
                return sysMembersResources.Sum();
            }
            return null;
        }
 public SettlementInfoAccessController(SettlementCmdData data) : base(data) { }