예제 #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;
        }
 public StarInfoAccessController(StarData data) : base(data) { }
예제 #3
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;
        }
예제 #4
0
 public StarReport(StarData data, Player player, IStar_Ltd item) : base(data, player, item) { }