Add stats button to end game dialog

Also adds the statistics window to TD.  There is no button for it in
observer mode, though, but it is available from the end game dialog.

Fixes #6312.
This commit is contained in:
Oliver Brakmann
2014-08-25 18:25:47 +02:00
parent 49adf023bb
commit c61516c55e
7 changed files with 525 additions and 23 deletions

View File

@@ -29,10 +29,22 @@ namespace OpenRA.Mods.RA.Widgets
if (showObjectives)
panelName = "LEAVE_RESTART_FULL";
var showStats = false;
var dialog = widget.Get<ContainerWidget>(panelName);
dialog.IsVisible = () => true;
dialog.IsVisible = () => !showStats;
widget.IsVisible = () => Ui.CurrentWindow() == null;
var statsButton = dialog.Get<ButtonWidget>("STATS_BUTTON");
statsButton.OnClick = () =>
{
showStats = true;
Game.LoadWidget(world, "INGAME_OBSERVERSTATS_BG", Ui.Root, new WidgetArgs()
{
{ "onExit", () => showStats = false }
});
};
var leaveButton = dialog.Get<ButtonWidget>("LEAVE_BUTTON");
leaveButton.OnClick = () =>
{

View File

@@ -68,7 +68,7 @@ Container@SKIRMISH_STATS:
X: 15
Y: 105
Width: 482
Height: 250
Height: 255
ItemSpacing: 5
Children:
Container@PLAYER_TEMPLATE:

View File

@@ -51,14 +51,13 @@ Container@LEAVE_RESTART_WIDGET:
Height: 35
Font: Bold
Text: Leave
Button@RESTART_BUTTON:
X: 150
Button@STATS_BUTTON:
X: PARENT_RIGHT - WIDTH
Y: PARENT_BOTTOM - 1
Width: 140
Height: 35
Font: Bold
Text: Restart
Visible: false
Text: Statistics
Container@LEAVE_RESTART_FULL:
X: (WINDOW_RIGHT - WIDTH) / 2
Y: (WINDOW_BOTTOM - HEIGHT) / 2
@@ -86,13 +85,12 @@ Container@LEAVE_RESTART_WIDGET:
Height: 35
Font: Bold
Text: Leave
Button@RESTART_BUTTON:
Button@STATS_BUTTON:
X: 150
Y: PARENT_BOTTOM - 1
Width: 140
Height: 35
Font: Bold
Text: Restart
Visible: false
Text: Statistics
Container@OBJECTIVES:

View File

@@ -0,0 +1,495 @@
Background@INGAME_OBSERVERSTATS_BG:
Logic: ObserverStatsLogic
X: (WINDOW_RIGHT - WIDTH) / 2
Y: (WINDOW_BOTTOM - HEIGHT) / 2
Width: 940
Height: 500
Children:
Background@BACKGROUND:
Width: PARENT_RIGHT
Background: panel-black
Height: PARENT_BOTTOM - 35
Children:
Label@TITLE:
X: 0
Y: 0-25
Width: PARENT_RIGHT
Font: BigBold
Align: Center
Contrast: True
Text: Statistics
DropDownButton@STATS_DROPDOWN:
X: PARENT_RIGHT-200
Y: 15
Width: 185
Height: 25
Font: Bold
Container@BASIC_STATS_HEADERS:
X: 0
Y: 0
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
Children:
Label@PLAYER_HEADER:
X: 75
Y: 40
Width: 160
Height: 25
Font: Bold
Text: Player
Label@CASH_HEADER:
X: 235
Y: 40
Width: 80
Height: 25
Font: Bold
Text: Cash
Label@EARNED_MIN_HEADER:
X: 315
Y: 40
Width: 60
Height: 25
Font: Bold
Text: Earned/min
Label@POWER_HEADER:
X: 415
Y: 40
Width: 80
Height: 25
Font: Bold
Text: Power
Label@KILLS_HEADER:
X: 495
Y: 40
Width: 40
Height: 25
Font: Bold
Text: Kills
Align: Right
Label@DEATHS_HEADER:
X: 555
Y: 40
Width: 40
Height: 25
Font: Bold
Text: Deaths
Align: Right
Label@ACTIONS_MIN_HEADER:
X: 655
Y: 40
Width: 40
Height: 25
Font: Bold
Text: Actions/min
Align: Right
Container@ECONOMY_STATS_HEADERS:
X: 0
Y: 0
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
Children:
Label@PLAYER_HEADER:
X: 75
Y: 40
Width: 160
Height: 25
Font: Bold
Text: Player
Label@CASH_HEADER:
X: 235
Y: 40
Width: 80
Height: 25
Font: Bold
Text: Cash
Label@EARNED_MIN_HEADER:
X: 315
Y: 40
Width: 60
Height: 25
Font: Bold
Text: Earned/min
Label@EARNED_THIS_MIN_HEADER:
X: 415
Y: 40
Width: 60
Height: 25
Font: Bold
Text: Earned this min
Label@ASSETS_HEADER:
X: 555
Y: 40
Width: 60
Height: 25
Font: Bold
Text: Assets
Label@EARNED_HEADER:
X: 635
Y: 40
Width: 60
Height: 25
Font: Bold
Text: Earned
Label@SPENT_HEADER:
X: 715
Y: 40
Width: 60
Height: 25
Font: Bold
Text: Spent
Label@HARVESTERS_HEADER:
X: 795
Y: 40
Width: 60
Height: 25
Font: Bold
Text: Harvesters
Align: Right
Container@PRODUCTION_STATS_HEADERS:
X: 0
Y: 0
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
Children:
Label@PLAYER_HEADER:
X: 75
Y: 40
Width: 160
Height: 25
Font: Bold
Text: Player
Label@PRODUCTION_HEADER:
X: 235
Y: 40
Width: 320
Height: 25
Font: Bold
Text: Production
Label@SUPPORT_POWERS_HEADER:
X: 555
Y: 40
Width: 320
Height: 25
Font: Bold
Text: Support Powers
Container@COMBAT_STATS_HEADERS:
X: 0
Y: 0
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
Children:
Label@PLAYER_HEADER:
X: 75
Y: 40
Width: 160
Height: 25
Font: Bold
Text: Player
Label@CONTROL_HEADER:
X: 235
Y: 40
Width: 60
Height: 25
Font: Bold
Text: Control
Label@KILLS_COST_HEADER:
X: 315
Y: 40
Width: 60
Height: 25
Font: Bold
Text: Kills
Label@DEATHS_COST_HEADER:
X: 395
Y: 40
Width: 60
Height: 25
Font: Bold
Text: Deaths
Label@UNITS_KILLED_HEADER:
X: 495
Y: 40
Width: 40
Height: 25
Font: Bold
Text: Units Killed
Align: Right
Label@UNITS_DEAD_HEADER:
X: 595
Y: 40
Width: 40
Height: 25
Font: Bold
Text: Units Lost
Align: Right
Label@BUILDINGS_KILLED_HEADER:
X: 715
Y: 40
Width: 40
Height: 25
Font: Bold
Text: Bldg Killed
Align: Right
Label@BUILDINGS_DEAD_HEADER:
X: 815
Y: 40
Width: 40
Height: 25
Font: Bold
Text: Bldg Lost
Align: Right
Container@EARNED_THIS_MIN_GRAPH_HEADERS:
X: 0
Y: 0
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
Children:
Label@EARNED_THIS_MIN_HEADER:
X: 0
Y: 40
Width: PARENT_RIGHT
Height: 25
Font: Bold
Text: Earnings received each minute
Align: Center
ScrollPanel@PLAYER_STATS_PANEL:
X: 15
Y: 70
Width: PARENT_RIGHT-30
Height: PARENT_BOTTOM-35-50
ItemSpacing: 5
Children:
ScrollItem@TEAM_TEMPLATE:
X: 0
Y: 0
Width: PARENT_RIGHT-35
Height: 25
Children:
Label@TEAM:
X: 0
Y: 0
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
Font: Bold
ScrollItem@BASIC_PLAYER_TEMPLATE:
X: 0
Y: 0
Width: PARENT_RIGHT-35
Height: 25
Children:
Image@FLAG:
X: 20
Y: 5
Width: 35
Height: PARENT_BOTTOM-5
ImageName: random
ImageCollection: flags
Label@PLAYER:
X: 55
Y: 0
Width: 160
Height: PARENT_BOTTOM
Font: Bold
Label@CASH:
X: 215
Y: 0
Width: 80
Height: PARENT_BOTTOM
Label@EARNED_MIN:
X: 295
Y: 0
Width: 60
Height: PARENT_BOTTOM
Label@POWER:
X: 395
Y: 0
Width: 80
Height: PARENT_BOTTOM
Label@KILLS:
X: 475
Y: 0
Width: 40
Height: PARENT_BOTTOM
Align: Right
Label@DEATHS:
X: 535
Y: 0
Width: 40
Height: PARENT_BOTTOM
Align: Right
Label@ACTIONS_MIN:
X: 635
Y: 0
Width: 40
Height: PARENT_BOTTOM
Align: Right
ScrollItem@ECONOMY_PLAYER_TEMPLATE:
X: 0
Y: 0
Width: PARENT_RIGHT-35
Height: 25
Children:
Image@FLAG:
X: 20
Y: 5
Width: 35
Height: PARENT_BOTTOM-5
ImageName: random
ImageCollection: flags
Label@PLAYER:
X: 55
Y: 0
Width: 160
Height: PARENT_BOTTOM
Font: Bold
Label@CASH:
X: 215
Y: 0
Width: 80
Height: PARENT_BOTTOM
Label@EARNED_MIN:
X: 295
Y: 0
Width: 60
Height: PARENT_BOTTOM
Label@EARNED_THIS_MIN:
X: 395
Y: 0
Width: 60
Height: PARENT_BOTTOM
Label@ASSETS:
X: 535
Y: 0
Width: 60
Height: PARENT_BOTTOM
Label@EARNED:
X: 615
Y: 0
Width: 60
Height: PARENT_BOTTOM
Label@SPENT:
X: 695
Y: 0
Width: 60
Height: PARENT_BOTTOM
Label@HARVESTERS:
X: 775
Y: 0
Width: 60
Height: PARENT_BOTTOM
Align: Right
ScrollItem@PRODUCTION_PLAYER_TEMPLATE:
X: 0
Y: 0
Width: PARENT_RIGHT-35
Height: 25
Children:
Image@FLAG:
X: 20
Y: 5
Width: 35
Height: PARENT_BOTTOM-5
ImageName: random
ImageCollection: flags
Label@PLAYER:
X: 55
Y: 0
Width: 160
Height: PARENT_BOTTOM
Font: Bold
ObserverProductionIcons@PRODUCTION_ICONS:
X: 215
Y: 0
Width: 320
Height: PARENT_BOTTOM
ObserverSupportPowerIcons@SUPPORT_POWER_ICONS:
X: 535
Y: 0
Width: 320
Height: PARENT_BOTTOM
ScrollItem@COMBAT_PLAYER_TEMPLATE:
X: 0
Y: 0
Width: PARENT_RIGHT-35
Height: 25
Children:
Image@FLAG:
X: 20
Y: 5
Width: 35
Height: PARENT_BOTTOM-5
ImageName: random
ImageCollection: flags
Label@PLAYER:
X: 55
Y: 0
Width: 160
Height: PARENT_BOTTOM
Font: Bold
Label@CONTROL:
X: 215
Y: 0
Width: 60
Height: PARENT_BOTTOM
Label@KILLS_COST:
X: 295
Y: 0
Width: 60
Height: PARENT_BOTTOM
Label@DEATHS_COST:
X: 375
Y: 0
Width: 60
Height: PARENT_BOTTOM
Label@UNITS_KILLED:
X: 475
Y: 0
Width: 40
Height: PARENT_BOTTOM
Align: Right
Label@UNITS_DEAD:
X: 575
Y: 0
Width: 40
Height: PARENT_BOTTOM
Align: Right
Label@BUILDINGS_KILLED:
X: 695
Y: 0
Width: 40
Height: PARENT_BOTTOM
Align: Right
Label@BUILDINGS_DEAD:
X: 795
Y: 0
Width: 40
Height: PARENT_BOTTOM
Align: Right
Container@EARNED_THIS_MIN_GRAPH_TEMPLATE:
X: 10
Y: 10
Width: PARENT_RIGHT-100
Height: PARENT_BOTTOM-60
Children:
LineGraph@EARNED_THIS_MIN_GRAPH:
X: 0
Y: 0
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
ValueFormat: ${0}
XAxisValueFormat: {0}
YAxisValueFormat: ${0:F0}
XAxisSize: 20
YAxisSize: 10
XAxisLabel: m
YAxisLabel: $
LabelFont: TinyBold
AxisFont: Bold
Button@CLOSE:
X: 0
Y: PARENT_BOTTOM - 36
Width: 140
Height: 35
Text: Close
Key: escape
Font: Bold

View File

@@ -95,6 +95,7 @@ ChromeLayout:
mods/cnc/chrome/ingame-infoobjectives.yaml
mods/cnc/chrome/ingame-infostats.yaml
mods/cnc/chrome/ingame-leavemap.yaml
mods/cnc/chrome/ingame-observerstats.yaml
mods/cnc/chrome/music.yaml
mods/cnc/chrome/settings.yaml
mods/cnc/chrome/credits.yaml

View File

@@ -38,16 +38,15 @@ Container@LEAVE_RESTART_WIDGET:
Height: 65
Text: Press 'Leave' to return to the main menu.
Align: Center
Button@RESTART_BUTTON:
Button@STATS_BUTTON:
X: 20
Y: PARENT_BOTTOM - 45
Width: 140
Height: 25
Font: Bold
Text: Restart
Visible: false
Text: Statistics
Button@LEAVE_BUTTON:
X: (PARENT_RIGHT - WIDTH) / 2
X: PARENT_RIGHT - WIDTH - 20
Y: PARENT_BOTTOM - 45
Width: 140
Height: 25
@@ -72,14 +71,13 @@ Container@LEAVE_RESTART_WIDGET:
Font: Bold
Align: Center
Text: The game has ended
Button@RESTART_BUTTON:
Button@STATS_BUTTON:
X: PARENT_RIGHT - 2 * (WIDTH + 20)
Y: PARENT_BOTTOM - 45
Width: 120
Height: 25
Font: Bold
Text: Restart
Visible: false
Text: Statistics
Button@LEAVE_BUTTON:
X: PARENT_RIGHT - WIDTH - 20
Y: PARENT_BOTTOM - 45

View File

@@ -45,16 +45,15 @@ Container@LEAVE_RESTART_WIDGET:
Height: 65
Text: Press 'Leave' to return to the main menu.
Align: Center
Button@RESTART_BUTTON:
Button@STATS_BUTTON:
X: 20
Y: PARENT_BOTTOM - 45
Width: 140
Height: 25
Font: Bold
Text: Restart
Visible: false
Text: Statistics
Button@LEAVE_BUTTON:
X: (PARENT_RIGHT - WIDTH) / 2
X: PARENT_RIGHT - WIDTH - 20
Y: PARENT_BOTTOM - 45
Width: 140
Height: 25
@@ -79,14 +78,13 @@ Container@LEAVE_RESTART_WIDGET:
Font: Bold
Align: Center
Text: The game has ended
Button@RESTART_BUTTON:
Button@STATS_BUTTON:
X: PARENT_RIGHT - 2 * (WIDTH + 20)
Y: PARENT_BOTTOM - 45
Width: 120
Height: 25
Font: Bold
Text: Restart
Visible: false
Text: Statistics
Button@LEAVE_BUTTON:
X: PARENT_RIGHT - WIDTH - 20
Y: PARENT_BOTTOM - 45