protected override bool HasAccessToInfo_Comprehensive(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Resources: default: return false; } }
private bool HasAccessToInfo(IntelCoverage coverage, ItemInfoID infoID, Player player) { switch (coverage) { case IntelCoverage.Comprehensive: if (HasAccessToInfo_Comprehensive(infoID, player)) { return true; } goto case IntelCoverage.Broad; case IntelCoverage.Broad: if (HasAccessToInfo_Broad(infoID, player)) { return true; } goto case IntelCoverage.Essential; case IntelCoverage.Essential: if (HasAccessToInfo_Essential(infoID, player)) { return true; } goto case IntelCoverage.Basic; case IntelCoverage.Basic: if (HasAccessToInfo_Basic(infoID, player)) { return true; } goto case IntelCoverage.None; case IntelCoverage.None: return false; default: throw new NotImplementedException(ErrorMessages.UnanticipatedSwitchValue.Inject(coverage)); } }
protected override bool HasAccessToInfo_Basic(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Name: case ItemInfoID.Position: case ItemInfoID.SectorID: return true; case ItemInfoID.Owner: // If gets here, System IntelCoverage is Basic, but a member could be allowing access SystemData sysData = _data as SystemData; bool starHasAccess = sysData.StarData.InfoAccessCntlr.HasAccessToInfo(player, infoID); if (starHasAccess) { return true; } else { bool anyPlanetoidHasAccess = sysData.AllPlanetoidData.Select(pData => pData.InfoAccessCntlr).Any(iac => iac.HasAccessToInfo(player, infoID)); if (anyPlanetoidHasAccess) { return true; } // WARNING: Do not inquire about Settlement Owner as Settlement inquires about System Owner creating a circular loop } return false; default: return false; } }
protected override bool HasAccessToInfo_Broad(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Capacity: return true; default: return false; } }
protected override bool HasAccessToInfo_Essential(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Owner: return true; default: return false; } }
protected override bool HasAccessToInfo_Basic(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Name: case ItemInfoID.Position: return true; default: return false; } }
public sealed override bool HasAccessToInfo(Player player, ItemInfoID infoID) { if (player == TempGameValues.NoPlayer) { D.Error("{0}: NoPlayer used to attempt access to {1}.{2}.", _data.DebugName, typeof(ItemInfoID).Name, infoID.GetValueName()); } D.AssertNotDefault((int)infoID); var coverage = (_data as AIntelItemData).GetIntelCoverage(player); //D.Log(ShowDebugLog, "{0}: {1}.IntelCoverage for {2} is {3}.", GetType().Name, _data.DebugName, player, coverage.GetValueName()); return HasAccessToInfo(coverage, infoID, player); }
protected override bool HasAccessToInfo_Comprehensive(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Culture: case ItemInfoID.Science: case ItemInfoID.NetIncome: return true; default: return false; } }
protected override bool HasAccessToInfo_Comprehensive(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.CurrentHitPoints: case ItemInfoID.Health: case ItemInfoID.Resources: return true; default: return false; } }
protected override bool HasAccessToInfo_Broad(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.CurrentHitPoints: case ItemInfoID.Health: case ItemInfoID.Defense: case ItemInfoID.Offense: return true; default: return false; } }
protected override bool HasAccessToInfo_Essential(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Owner: case ItemInfoID.Category: case ItemInfoID.CurrentSpeedSetting: case ItemInfoID.AlertStatus: return true; default: return false; } }
protected override bool HasAccessToInfo_Basic(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Name: case ItemInfoID.ParentName: case ItemInfoID.Position: case ItemInfoID.SectorID: case ItemInfoID.OrbitalSpeed: return true; default: return false; } }
protected override bool HasAccessToInfo_Comprehensive(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.CurrentCmdEffectiveness: case ItemInfoID.UnitScience: case ItemInfoID.UnitNetIncome: case ItemInfoID.Resources: case ItemInfoID.UnitCulture: case ItemInfoID.Capacity: case ItemInfoID.UnitCurrentHitPts: return true; default: return false; } }
protected override bool HasAccessToInfo_Essential(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Category: case ItemInfoID.MaxHitPoints: case ItemInfoID.Mass: case ItemInfoID.WeaponsRange: case ItemInfoID.SensorRange: case ItemInfoID.Owner: case ItemInfoID.AlertStatus: return true; default: return false; } }
protected override bool HasAccessToInfo_Basic(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Name: case ItemInfoID.ParentName: case ItemInfoID.Position: case ItemInfoID.SectorID: return true; case ItemInfoID.Owner: // If gets here, Settlement IntelCoverage is Basic, but ParentSystem could be allowing access. // System uses ImprovingIntel where Coverage can't regress. Settlement uses Intel which allows regress SystemInfoAccessController parentSysAccessCntlr = (_data as SettlementCmdData).ParentSystemData.InfoAccessCntlr; return parentSysAccessCntlr.HasAccessToInfo(player, ItemInfoID.Owner); default: return false; } }
protected override bool HasAccessToInfo_Broad(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.UnitWeaponsRange: case ItemInfoID.UnitSensorRange: case ItemInfoID.UnitHealth: case ItemInfoID.UnitMaxHitPts: case ItemInfoID.Formation: case ItemInfoID.Composition: case ItemInfoID.UnitOffense: case ItemInfoID.UnitDefense: //D.Log(ShowDebugLog, "{0}.HasAccesstoInfo_Broad({1}, {2}) called.", GetType().Name, infoID.GetValueName(), player); return true; default: return false; } }
protected override bool HasAccessToInfo_Broad(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.UnitWeaponsRange: case ItemInfoID.UnitSensorRange: case ItemInfoID.UnitHealth: case ItemInfoID.UnitMaxHitPts: case ItemInfoID.UnitCurrentHitPts: case ItemInfoID.Composition: case ItemInfoID.Formation: case ItemInfoID.UnitDefense: case ItemInfoID.UnitOffense: return true; default: return false; } }
protected override bool HasAccessToInfo_Basic(ItemInfoID infoID, Player player) { switch (infoID) { case ItemInfoID.Name: case ItemInfoID.Position: case ItemInfoID.SectorID: return true; case ItemInfoID.Owner: // If gets here, Sector IntelCoverage is Basic, but a member could be allowing access. SectorData sectorData = _data as SectorData; bool systemHasAccess = sectorData.SystemData != null ? sectorData.SystemData.InfoAccessCntlr.HasAccessToInfo(player, infoID) : false; if (systemHasAccess) { return true; } return false; default: return false; } }
/// <summary> /// Returns <c>true</c> if <c>Player</c> with IntelCoverage.Essential should have access to the info identified by infoID, /// <c>false</c> otherwise. If false, the next lower IntelCoverage level will be tested until true is returned or Basic has been evaluated. /// </summary> /// <param name="infoID">The information identifier.</param> /// <param name="player">The player requesting the access. /// Only used when this InfoAccessCntlr needs to consult with another to make a decision.</param> /// <returns></returns> protected abstract bool HasAccessToInfo_Essential(ItemInfoID infoID, Player player);
/// <summary> /// Returns <c>true</c> if <c>Player</c> with IntelCoverage.Broad should have access to the info identified by infoID, /// <c>false</c> otherwise. If false, the next lower IntelCoverage level will be tested until true is returned or Basic has been evaluated. /// </summary> /// <param name="infoID">The information identifier.</param> /// <param name="player">The player requesting the access. /// Only used when this InfoAccessCntlr needs to consult with another to make a decision.</param> /// <returns></returns> protected abstract bool HasAccessToInfo_Broad(ItemInfoID infoID, Player player);
/// <summary> /// Returns <c>true</c> if <c>Player</c> with IntelCoverage.Comprehensive should have access to the info identified by infoID, /// <c>false</c> otherwise. If false, the next lower IntelCoverage level will be tested until true is returned or Basic has been evaluated. /// </summary> /// <param name="infoID">The information identifier.</param> /// <param name="player">The player requesting the access. /// Only used when this InfoAccessCntlr needs to consult with another to make a decision.</param> /// <returns></returns> protected abstract bool HasAccessToInfo_Comprehensive(ItemInfoID infoID, Player player);
public abstract bool HasAccessToInfo(Player player, ItemInfoID infoID);
protected override bool HasAccessToInfo_Broad(ItemInfoID infoID, Player player) { switch (infoID) { default: return false; } }