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)); } }
/// <summary> /// Processes the change to a new level of coverage BEFORE the new level of coverage /// is applied. /// </summary> /// <param name="newCoverage">The new coverage.</param> protected override void PreProcessChange(IntelCoverage newCoverage) { if (newCoverage < CurrentCoverage) { // we have less data than before so record the level we had and stamp the date DatedCoverage = CurrentCoverage; DateStamp = GameTime.Instance.CurrentDate; } if (newCoverage > CurrentCoverage && newCoverage >= DatedCoverage) { // we have more data than before and it is the same or more than our previous record, so erase the previous record DatedCoverage = default(IntelCoverage); DateStamp = default(GameDate); } // if newCoverage is same as currentCoverage than they are both None and this is a new instance - nothing to change // if we have more data than before, but we still haven't reached our record, then nothing to change // CurrentCoverage is set to newCoverage after PreProcessChange(newCoverage) finishes }
private void __ToggleStealthSimulation() { if (__normalIntelCoverage == IntelCoverage.None) { __normalIntelCoverage = PlayerIntel.CurrentCoverage; } PlayerIntel.CurrentCoverage = PlayerIntel.CurrentCoverage == __normalIntelCoverage ? IntelCoverage.Basic : __normalIntelCoverage; }
public void SetIntelCoverage(Player player, IntelCoverage coverage) { GetPlayerIntel(player).CurrentCoverage = coverage; }
/// <summary> /// Sets the intel coverage for this player. Returns <c>true</c> if the <c>newCoverage</c> /// was successfully applied, and <c>false</c> if it was rejected due to the inability of /// the item to regress its IntelCoverage. /// </summary> /// <param name="player">The player.</param> /// <param name="newCoverage">The new coverage.</param> /// <returns></returns> public bool SetIntelCoverage(Player player, IntelCoverage newCoverage) { Profiler.BeginSample("AIntelItemData.SetIntelCoverage"); var playerIntel = GetIntel(player); if (playerIntel.IsCoverageChangeAllowed(newCoverage)) { playerIntel.CurrentCoverage = newCoverage; HandleIntelCoverageChangedFor(player); OnIntelCoverageChanged(player); Profiler.EndSample(); return true; } //D.Log(ShowDebugLog, "{0} properly ignored changing {1}'s IntelCoverage from {2} to {3}.", // DebugName, player, playerIntel.CurrentCoverage.GetValueName(), newCoverage.GetValueName()); Profiler.EndSample(); return false; }
/// <summary> /// Derived classes should override this if they have a different type of AIntel than <see cref="Intel" />. /// </summary> /// <param name="initialcoverage">The initial coverage.</param> /// <returns></returns> protected virtual AIntel MakeIntel(IntelCoverage initialcoverage) { var intel = new Intel(); intel.InitializeCoverage(initialcoverage); return intel; }
public void InitializeCoverage(IntelCoverage coverage) { PreProcessChange(coverage); _currentCoverage = coverage; }
private bool IsTextCurrent(DisplayTargetID displayTgtID, Player player, IntelCoverage intelCoverage, ShipReport[] elementReports, bool includeUnknown) { return displayTgtID == _currentTextLabelID && includeUnknown == LabelFormatter.IncludeUnknown && IsReportCurrent(player, intelCoverage, elementReports); }
public FixedIntel(IntelCoverage fixedCoverage) : base(fixedCoverage) { }
private void DatedCoveragePropChangingHandler(IntelCoverage newDatedCoverage) { //D.Log("Intel.DatedCoverage changing from {0} to {1}.", DatedCoverage, newDatedCoverage); }
public override bool IsCoverageChangeAllowed(IntelCoverage newCoverage) { return CurrentCoverage != newCoverage; }
/// <summary> /// Processes the change to a new level of coverage BEFORE the new level of coverage /// is applied. /// </summary> /// <param name="newCoverage">The new coverage.</param> protected virtual void PreProcessChange(IntelCoverage newCoverage) { }
private void CurrentCoveragePropChangingHandler(IntelCoverage newCoverage) { PreProcessChange(newCoverage); }
public abstract bool IsCoverageChangeAllowed(IntelCoverage newCoverage);
/// <summary> /// Initializes a new instance of the <see cref="IntelLabelText" /> class. /// </summary> /// <param name="displayTgtID">The label identifier.</param> /// <param name="report">The report.</param> /// <param name="isDedicatedLinePerContentID">if set to <c>true</c> the text associated with each key will be displayed on a separate line.</param> public IntelLabelText(DisplayTargetID displayTgtID, AIntelItemReport report, bool isDedicatedLinePerContentID) : base(displayTgtID, report, isDedicatedLinePerContentID) { IntelCoverage = report.IntelCoverage; }
public GuiHudText(IntelCoverage intelCoverage) : base(isDedicatedLinePerKey: true) { IntelCoverage = intelCoverage; }
private bool IsReportCurrent(Player player, IntelCoverage intelCoverage, ShipReport[] elementReports) { return _report != null && _report.Player == player && _report.IntelCoverage == intelCoverage && !_data.IsChanged && !elementReports.Except(_elementReports).Any(); }
protected override AIntel MakeIntel(IntelCoverage initialcoverage) { var intel = new ImprovingIntel(); intel.InitializeCoverage(initialcoverage); return intel; }
/// <summary> /// Sets the Intel coverage for this player. Returns <c>true</c> if the <c>newCoverage</c> /// was successfully applied, and <c>false</c> if it was rejected due to the inability of /// the item to regress its IntelCoverage. /// </summary> /// <param name="player">The player.</param> /// <param name="newCoverage">The new coverage.</param> /// <returns></returns> public bool SetIntelCoverage(Player player, IntelCoverage newCoverage) { return Data.SetIntelCoverage(player, newCoverage); }
/// <summary> /// Copy Constructor. Initializes a new instance of the <see cref="AIntel"/> class, /// a copy of <c>intelToCopy</c>. /// </summary> /// <param name="intelToCopy">The intel to copy.</param> public AIntel(AIntel intelToCopy) { _currentCoverage = intelToCopy.CurrentCoverage; }