protected override void Update(FrameEventArgs args) { base.Update(args); if (!_parent._uiUpdateNeeded) { return; } _parent._uiUpdateNeeded = false; if (!_parent.StatusShowBehavior) { _label.SetMarkup(string.Empty); } else { _label.SetMarkup(_parent.Behavior.ToString()); } }
protected override void Update(FrameEventArgs args) { base.Update(args); if (!_parent._uiUpdateNeeded) { return; } _parent._uiUpdateNeeded = false; _label.SetMarkup(Loc.GetString("Count: [color=white]{0}[/color]", _parent.Count)); }
protected override void FrameUpdate(FrameEventArgs args) { base.FrameUpdate(args); if (!_parent._uiUpdateNeeded) { return; } _parent._uiUpdateNeeded = false; _label.SetMarkup(_parent.StatusShowBehavior ? _parent.Behavior ?? string.Empty : string.Empty); }
protected override void Update(FrameEventArgs args) { base.Update(args); if (!_parent._uiUpdateNeeded) { return; } _parent._uiUpdateNeeded = false; _label.SetMarkup(Loc.GetString( "Volume: [color=white]{0}/{1}[/color]", _parent.CurrentVolume, _parent.TotalVolume)); }
private BoxContainer MakeRoundEndSummaryTab(string gamemode, string roundEnd, TimeSpan roundDuration, int roundId) { var roundEndSummaryTab = new BoxContainer { Orientation = LayoutOrientation.Vertical, Name = Loc.GetString("round-end-summary-window-round-end-summary-tab-title") }; var roundEndSummaryContainerScrollbox = new ScrollContainer { VerticalExpand = true }; var roundEndSummaryContainer = new BoxContainer { Orientation = LayoutOrientation.Vertical }; //Gamemode Name var gamemodeLabel = new RichTextLabel(); var gamemodeMessage = new FormattedMessage(); gamemodeMessage.AddMarkup(Loc.GetString("round-end-summary-window-round-id-label", ("roundId", roundId))); gamemodeMessage.AddText(" "); gamemodeMessage.AddMarkup(Loc.GetString("round-end-summary-window-gamemode-name-label", ("gamemode", gamemode))); gamemodeLabel.SetMessage(gamemodeMessage); roundEndSummaryContainer.AddChild(gamemodeLabel); //Duration var roundTimeLabel = new RichTextLabel(); roundTimeLabel.SetMarkup(Loc.GetString("round-end-summary-window-duration-label", ("hours", roundDuration.Hours), ("minutes", roundDuration.Minutes), ("seconds", roundDuration.Seconds))); roundEndSummaryContainer.AddChild(roundTimeLabel); //Round end text if (!string.IsNullOrEmpty(roundEnd)) { var roundEndLabel = new RichTextLabel(); roundEndLabel.SetMarkup(roundEnd); roundEndSummaryContainer.AddChild(roundEndLabel); } roundEndSummaryContainerScrollbox.AddChild(roundEndSummaryContainer); roundEndSummaryTab.AddChild(roundEndSummaryContainerScrollbox); return(roundEndSummaryTab); }
protected override void Update(FrameEventArgs args) { base.Update(args); if (!_parent._uiUpdateNeeded) { return; } _parent._uiUpdateNeeded = false; _label.SetMarkup(Loc.GetString("Drawing: [color={0}]{1}[/color] ({2}/{3})", _parent.Color, _parent.SelectedState, _parent.Charges, _parent.Capacity)); }
protected override void Update(FrameEventArgs args) { base.Update(args); if (!_parent._uiUpdateNeeded) { return; } _parent._uiUpdateNeeded = false; var fuelCap = _parent.FuelCapacity; var fuel = _parent.Fuel; _label.SetMarkup(Loc.GetString("Fuel: [color={0}]{1}/{2}[/color]", fuel < fuelCap / 4f ? "darkorange" : "orange", Math.Round(fuel), fuelCap)); }
protected override void Update(FrameEventArgs args) { base.Update(args); if (!_parent._uiUpdateNeeded) { return; } _parent._uiUpdateNeeded = false; var color = _parent.Danger switch { GasAnalyzerDanger.Warning => "orange", GasAnalyzerDanger.Hazard => "red", _ => "green", }; _label.SetMarkup(Loc.GetString("Pressure: [color={0}]{1}[/color]", color, Enum.GetName(typeof(GasAnalyzerDanger), _parent.Danger))); }
protected override void Update(FrameEventArgs args) { base.Update(args); if (!_parent._uiUpdateNeeded) { return; } _parent._uiUpdateNeeded = false; //Update current volume and injector state var modeStringLocalized = _parent.CurrentMode switch { InjectorToggleMode.Draw => Loc.GetString("Draw"), InjectorToggleMode.Inject => Loc.GetString("Inject"), _ => Loc.GetString("Invalid") }; _label.SetMarkup(Loc.GetString("Volume: [color=white]{0}/{1}[/color] | [color=white]{2}[/color]", _parent.CurrentVolume, _parent.TotalVolume, modeStringLocalized)); } }
public RoundEndSummaryWindow(string gm, string roundEnd, TimeSpan roundTimeSpan, List <RoundEndPlayerInfo> info) { Title = Loc.GetString("Round End Summary"); //Round End Window is split into two tabs, one about the round stats //and the other is a list of RoundEndPlayerInfo for each player. //This tab would be a good place for things like: "x many people died.", //"clown slipped the crew x times.", "x shots were fired this round.", etc. //Also good for serious info. RoundEndSummaryTab = new VBoxContainer() { Name = Loc.GetString("Round Information") }; //Tab for listing unique info per player. PlayerManifestoTab = new VBoxContainer() { Name = Loc.GetString("Player Manifesto") }; RoundEndWindowTabs = new TabContainer(); RoundEndWindowTabs.AddChild(RoundEndSummaryTab); RoundEndWindowTabs.AddChild(PlayerManifestoTab); Contents.AddChild(RoundEndWindowTabs); //Gamemode Name var gamemodeLabel = new RichTextLabel(); gamemodeLabel.SetMarkup(Loc.GetString("Round of [color=white]{0}[/color] has ended.", gm)); RoundEndSummaryTab.AddChild(gamemodeLabel); //Round end text if (!string.IsNullOrEmpty(roundEnd)) { var roundEndLabel = new RichTextLabel(); roundEndLabel.SetMarkup(Loc.GetString(roundEnd)); RoundEndSummaryTab.AddChild(roundEndLabel); } //Duration var roundTimeLabel = new RichTextLabel(); roundTimeLabel.SetMarkup(Loc.GetString("It lasted for [color=yellow]{0} hours, {1} minutes, and {2} seconds.", roundTimeSpan.Hours, roundTimeSpan.Minutes, roundTimeSpan.Seconds)); RoundEndSummaryTab.AddChild(roundTimeLabel); //Initialize what will be the list of players display. var scrollContainer = new ScrollContainer(); scrollContainer.SizeFlagsVertical = SizeFlags.FillExpand; var innerScrollContainer = new VBoxContainer(); //Put observers at the bottom of the list. Put antags on top. var manifestSortedList = info.OrderBy(p => p.Observer).ThenBy(p => !p.Antag); //Create labels for each player info. foreach (var playerInfo in manifestSortedList) { var playerInfoText = new RichTextLabel() { SizeFlagsVertical = SizeFlags.Fill, }; if (playerInfo.Observer) { playerInfoText.SetMarkup( Loc.GetString("[color=gray]{0}[/color] was [color=lightblue]{1}[/color], an observer.", playerInfo.PlayerOOCName, playerInfo.PlayerICName)); } else { //TODO: On Hover display a popup detailing more play info. //For example: their antag goals and if they completed them sucessfully. var icNameColor = playerInfo.Antag ? "red" : "white"; playerInfoText.SetMarkup( Loc.GetString("[color=gray]{0}[/color] was [color={1}]{2}[/color] playing role of [color=orange]{3}[/color].", playerInfo.PlayerOOCName, icNameColor, playerInfo.PlayerICName, Loc.GetString(playerInfo.Role))); } innerScrollContainer.AddChild(playerInfoText); } scrollContainer.AddChild(innerScrollContainer); //Attach the entire ScrollContainer that holds all the playerinfo. PlayerManifestoTab.AddChild(scrollContainer); // TODO: 1240 Overlap, remove once it's fixed. Temp Hack to make the lines not overlap PlayerManifestoTab.OnVisibilityChanged += PlayerManifestoTab_OnVisibilityChanged; //Finally, display the window. OpenCentered(); MoveToFront(); }
public void Update() { _parent._uiUpdateNeeded = false; _label.SetMarkup(_parent.StatusShowBehavior ? _parent.Behavior ?? string.Empty : string.Empty); }
public RoundEndSummaryWindow(string gm, string roundEnd, TimeSpan roundTimeSpan, RoundEndMessageEvent.RoundEndPlayerInfo[] info) { MinSize = SetSize = (520, 580); Title = Loc.GetString("round-end-summary-window-title"); //Round End Window is split into two tabs, one about the round stats //and the other is a list of RoundEndPlayerInfo for each player. //This tab would be a good place for things like: "x many people died.", //"clown slipped the crew x times.", "x shots were fired this round.", etc. //Also good for serious info. RoundEndSummaryTab = new VBoxContainer() { Name = Loc.GetString("round-end-summary-window-round-end-summary-tab-title") }; //Tab for listing unique info per player. PlayerManifestoTab = new VBoxContainer() { Name = Loc.GetString("round-end-summary-window-player-manifesto-tab-title") }; RoundEndWindowTabs = new TabContainer(); RoundEndWindowTabs.AddChild(RoundEndSummaryTab); RoundEndWindowTabs.AddChild(PlayerManifestoTab); Contents.AddChild(RoundEndWindowTabs); //Gamemode Name var gamemodeLabel = new RichTextLabel(); gamemodeLabel.SetMarkup(Loc.GetString("round-end-summary-window-gamemode-name-label", ("gamemode", gm))); RoundEndSummaryTab.AddChild(gamemodeLabel); //Round end text if (!string.IsNullOrEmpty(roundEnd)) { var roundEndLabel = new RichTextLabel(); roundEndLabel.SetMarkup(Loc.GetString(roundEnd)); RoundEndSummaryTab.AddChild(roundEndLabel); } //Duration var roundTimeLabel = new RichTextLabel(); roundTimeLabel.SetMarkup(Loc.GetString("round-end-summary-window-duration-label", ("hours", roundTimeSpan.Hours), ("minutes", roundTimeSpan.Minutes), ("seconds", roundTimeSpan.Seconds))); RoundEndSummaryTab.AddChild(roundTimeLabel); //Initialize what will be the list of players display. var scrollContainer = new ScrollContainer { VerticalExpand = true }; var innerScrollContainer = new VBoxContainer(); //Put observers at the bottom of the list. Put antags on top. var manifestSortedList = info.OrderBy(p => p.Observer).ThenBy(p => !p.Antag); //Create labels for each player info. foreach (var playerInfo in manifestSortedList) { var playerInfoText = new RichTextLabel(); if (playerInfo.PlayerICName != null) { if (playerInfo.Observer) { playerInfoText.SetMarkup( Loc.GetString("round-end-summary-window-player-info-if-observer-text", ("playerOOCName", playerInfo.PlayerOOCName), ("playerICName", playerInfo.PlayerICName))); } else { //TODO: On Hover display a popup detailing more play info. //For example: their antag goals and if they completed them sucessfully. var icNameColor = playerInfo.Antag ? "red" : "white"; playerInfoText.SetMarkup( Loc.GetString("round-end-summary-window-player-info-if-not-observer-text", ("playerOOCName", playerInfo.PlayerOOCName), ("icNameColor", icNameColor), ("playerICName", playerInfo.PlayerICName), ("playerRole", Loc.GetString(playerInfo.Role)))); } } innerScrollContainer.AddChild(playerInfoText); } scrollContainer.AddChild(innerScrollContainer); //Attach the entire ScrollContainer that holds all the playerinfo. PlayerManifestoTab.AddChild(scrollContainer); //Finally, display the window. OpenCentered(); MoveToFront(); }