/// <summary> /// Updates the current GuiCursorHudText instance by replacing the lines identified by keys. /// </summary> /// <param name="intelLevel">The intel level.</param> /// <param name="keys">The line keys.</param> private void UpdateGuiCursorHudText(IntelLevel intelLevel, params GuiHudLineKeys[] keys) { IColoredTextList coloredTextList; foreach (var key in keys) { coloredTextList = GuiHudTextFactory.MakeInstance(key, intelLevel, _data); _guiCursorHudText.Replace(key, coloredTextList); } }
/// <summary> /// Gets a new, updated or simply existing GuiCursorHudText instance containing /// the text used by the GuiCursorHud display. /// </summary> /// <param name="intelLevel">The intel level.</param> /// <returns></returns> public GuiHudText GetHudText(IntelLevel intelLevel) { // OPTIMIZE Detect individual data property changes and replace them individually if (_guiCursorHudText == null || _guiCursorHudText.IntelLevel != intelLevel || _data.IsChanged) { // don't have the right version of GuiCursorHudText so make one _guiCursorHudText = GuiHudTextFactory.MakeInstance(intelLevel, _data); _data.AcceptChanges(); // once we make a new one from current data, it is no longer dirty, if it ever was } else { // we have the right clean version so simply update the values that routinely change UpdateGuiCursorHudText(intelLevel, GuiHudLineKeys.Distance); if (intelLevel == IntelLevel.OutOfDate) { UpdateGuiCursorHudText(IntelLevel.OutOfDate, GuiHudLineKeys.IntelState); } if (_optionalKeys != null) { UpdateGuiCursorHudText(intelLevel, _optionalKeys); } } return _guiCursorHudText; }
public GuiCursorHudTextFactory_Ship(ShipData data, IntelLevel intelLevel) : base(data, intelLevel) { }
public AGuiCursorHudTextFactory(Data data, IntelLevel intelLevel) { Arguments.ValidateNotNull(data); IntelLevel = intelLevel; _data = data; }
private string ConstructIntelText(IntelLevel intelLevel, GameTimePeriod intelAge) { string intelMsg = intelLevel.GetValueName(); switch (intelLevel) { case IntelLevel.Unknown: case IntelLevel.LongRangeSensors: case IntelLevel.ShortRangeSensors: case IntelLevel.Complete: // no data to add break; case IntelLevel.OutOfDate: string addendum = String.Format(". Last Intel {0} days ago.", intelAge.FormattedPeriod); intelMsg = intelMsg + addendum; break; case IntelLevel.Nil: default: throw new NotImplementedException(ErrorMessages.UnanticipatedSwitchValue.Inject(intelLevel)); } return intelMsg; }
public ColoredTextList_Intel(IGameDate exploredDate, IntelLevel intelLevel) { GameTimePeriod intelAge = new GameTimePeriod(exploredDate, GameTime.Date); string intelText_formatted = ConstructIntelText(intelLevel, intelAge); _list.Add(new ColoredText(intelText_formatted)); }
public GuiCursorHudTextFactory_Fleet(FleetData data, IntelLevel intelLevel) : base(data, intelLevel) { }
public GuiCursorHudTextFactory_System(SystemData data, IntelLevel intelLevel) : base(data, intelLevel) { }