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));
     }
 }
Exemple #2
0
        /// <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;
 }
Exemple #4
0
 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;
 }
Exemple #7
0
 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);
 }
Exemple #9
0
 public FixedIntel(IntelCoverage fixedCoverage) : base(fixedCoverage) { }
Exemple #10
0
 private void DatedCoveragePropChangingHandler(IntelCoverage newDatedCoverage) {
     //D.Log("Intel.DatedCoverage changing from {0} to {1}.", DatedCoverage, newDatedCoverage);
 }
Exemple #11
0
 public override bool IsCoverageChangeAllowed(IntelCoverage newCoverage) {
     return CurrentCoverage != newCoverage;
 }
Exemple #12
0
 /// <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) { }
Exemple #13
0
 private void CurrentCoveragePropChangingHandler(IntelCoverage newCoverage) {
     PreProcessChange(newCoverage);
 }
Exemple #14
0
 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;
 }
Exemple #16
0
 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();
 }
Exemple #18
0
 protected override AIntel MakeIntel(IntelCoverage initialcoverage) {
     var intel = new ImprovingIntel();
     intel.InitializeCoverage(initialcoverage);
     return intel;
 }
Exemple #19
0
 /// <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);
 }
Exemple #20
0
 /// <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;
 }