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