Clean up lobby logic and visuals.

This commit is contained in:
Paul Chote
2013-04-23 12:17:51 +12:00
parent 9069d98365
commit ed9d8fb7f7
12 changed files with 463 additions and 225 deletions

View File

@@ -138,7 +138,7 @@ namespace OpenRA.Widgets
{ {
var owned = colors.ContainsKey(p); var owned = colors.ContainsKey(p);
var pos = ConvertToPreview(p); var pos = ConvertToPreview(p);
var sprite = ChromeProvider.GetImage("spawnpoints", owned ? "owned" : "unowned"); var sprite = ChromeProvider.GetImage("lobby-bits", owned ? "spawn-claimed" : "spawn-unclaimed");
var offset = new int2(-sprite.bounds.Width/2, -sprite.bounds.Height/2); var offset = new int2(-sprite.bounds.Width/2, -sprite.bounds.Height/2);
if (owned) if (owned)

View File

@@ -377,7 +377,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
// get template for possible reuse // get template for possible reuse
if (idx < Players.Children.Count) if (idx < Players.Children.Count)
template = Players.Children [idx]; template = Players.Children[idx];
// Empty slot // Empty slot
if (client == null) if (client == null)
@@ -385,29 +385,17 @@ namespace OpenRA.Mods.RA.Widgets.Logic
if (template == null || template.Id != EmptySlotTemplate.Id) if (template == null || template.Id != EmptySlotTemplate.Id)
template = EmptySlotTemplate.Clone(); template = EmptySlotTemplate.Clone();
Func<string> getText = () => slot.Closed ? "Closed" : "Open";
var ready = orderManager.LocalClient.IsReady;
if (Game.IsHost) if (Game.IsHost)
{ LobbyUtils.SetupEditableSlotWidget(template, slot, client, orderManager);
var name = template.Get<DropDownButtonWidget>("NAME_HOST");
name.IsVisible = () => true;
name.IsDisabled = () => ready;
name.GetText = getText;
name.OnMouseDown = _ => LobbyUtils.ShowSlotDropDown(name, slot, client, orderManager);
}
else else
{ LobbyUtils.SetupSlotWidget(template, slot, client);
var name = template.Get<LabelWidget>("NAME");
name.IsVisible = () => true;
name.GetText = getText;
}
var join = template.Get<ButtonWidget>("JOIN"); var join = template.Get<ButtonWidget>("JOIN");
join.IsVisible = () => !slot.Closed; join.IsVisible = () => !slot.Closed;
join.IsDisabled = () => ready; join.IsDisabled = () => orderManager.LocalClient.IsReady;
join.OnClick = () => orderManager.IssueOrder(Order.Command("slot " + key)); join.OnClick = () => orderManager.IssueOrder(Order.Command("slot " + key));
} }
// Editable player in slot // Editable player in slot
else if ((client.Index == orderManager.LocalClient.Index) || else if ((client.Index == orderManager.LocalClient.Index) ||
(client.Bot != null && Game.IsHost)) (client.Bot != null && Game.IsHost))
@@ -415,92 +403,33 @@ namespace OpenRA.Mods.RA.Widgets.Logic
if (template == null || template.Id != EditablePlayerTemplate.Id) if (template == null || template.Id != EditablePlayerTemplate.Id)
template = EditablePlayerTemplate.Clone(); template = EditablePlayerTemplate.Clone();
var botReady = client.Bot != null && Game.IsHost && orderManager.LocalClient.IsReady; LobbyUtils.SetupAdminPingWidget(template, slot, client, orderManager, client.Bot == null);
var ready = botReady || client.IsReady;
if (client.Bot != null) if (client.Bot != null)
{ LobbyUtils.SetupEditableSlotWidget(template, slot, client, orderManager);
var name = template.Get<DropDownButtonWidget>("BOT_DROPDOWN");
name.IsVisible = () => true;
name.IsDisabled = () => ready;
name.GetText = () => client.Name;
name.OnMouseDown = _ => LobbyUtils.ShowSlotDropDown(name, slot, client, orderManager);
}
else else
{ LobbyUtils.SetupEditableNameWidget(template, slot, client, orderManager);
var name = template.Get<TextFieldWidget>("NAME");
name.IsVisible = () => true;
name.IsDisabled = () => ready;
LobbyUtils.SetupNameWidget(orderManager, client, name);
}
var color = template.Get<DropDownButtonWidget>("COLOR"); LobbyUtils.SetupEditableColorWidget(template, slot, client, orderManager, colorPreview);
color.IsDisabled = () => slot.LockColor || ready; LobbyUtils.SetupEditableFactionWidget(template, slot, client, orderManager, CountryNames);
color.OnMouseDown = _ => LobbyUtils.ShowColorDropDown(color, client, orderManager, colorPreview); LobbyUtils.SetupEditableTeamWidget(template, slot, client, orderManager, Map.GetSpawnPoints().Length);
LobbyUtils.SetupEditableReadyWidget(template, slot, client, orderManager);
var colorBlock = color.Get<ColorBlockWidget>("COLORBLOCK");
colorBlock.GetColor = () => client.ColorRamp.GetColor(0);
var faction = template.Get<DropDownButtonWidget>("FACTION");
faction.IsDisabled = () => slot.LockRace || ready;
faction.OnMouseDown = _ => LobbyUtils.ShowRaceDropDown(faction, client, orderManager, CountryNames);
var factionname = faction.Get<LabelWidget>("FACTIONNAME");
factionname.GetText = () => CountryNames[client.Country];
var factionflag = faction.Get<ImageWidget>("FACTIONFLAG");
factionflag.GetImageName = () => client.Country;
factionflag.GetImageCollection = () => "flags";
var team = template.Get<DropDownButtonWidget>("TEAM");
team.IsDisabled = () => slot.LockTeam || ready;
team.OnMouseDown = _ => LobbyUtils.ShowTeamDropDown(team, client, orderManager, Map);
team.GetText = () => (client.Team == 0) ? "-" : client.Team.ToString();
if (slot.LockTeam || client.Team > 0) if (slot.LockTeam || client.Team > 0)
TeamGame = true; TeamGame = true;
if (client.Bot == null)
{
// local player
var status = template.Get<CheckboxWidget>("STATUS_CHECKBOX");
status.IsChecked = () => ready;
status.IsVisible = () => true;
status.OnClick = CycleReady;
}
else // Bot
template.Get<ImageWidget>("STATUS_IMAGE").IsVisible = () => true;
} }
else else
{ // Non-editable player in slot { // Non-editable player in slot
if (template == null || template.Id != NonEditablePlayerTemplate.Id) if (template == null || template.Id != NonEditablePlayerTemplate.Id)
template = NonEditablePlayerTemplate.Clone(); template = NonEditablePlayerTemplate.Clone();
template.Get<LabelWidget>("NAME").GetText = () => client.Name; LobbyUtils.SetupAdminPingWidget(template, slot, client, orderManager, client.Bot == null);
if (client.IsAdmin) LobbyUtils.SetupNameWidget(template, slot, client);
template.Get<LabelWidget>("NAME").Font = "Bold"; LobbyUtils.SetupKickWidget(template, slot, client, orderManager);
if (client.Ping > -1) LobbyUtils.SetupColorWidget(template, slot, client);
template.Get<LabelWidget>("NAME").GetColor = () => LobbyUtils.GetPingColor(client.Ping); LobbyUtils.SetupFactionWidget(template, slot, client, CountryNames);
LobbyUtils.SetupTeamWidget(template, slot, client);
var color = template.Get<ColorBlockWidget>("COLOR"); LobbyUtils.SetupReadyWidget(template, slot, client);
color.GetColor = () => client.ColorRamp.GetColor(0);
var faction = template.Get<LabelWidget>("FACTION");
var factionname = faction.Get<LabelWidget>("FACTIONNAME");
factionname.GetText = () => CountryNames[client.Country];
var factionflag = faction.Get<ImageWidget>("FACTIONFLAG");
factionflag.GetImageName = () => client.Country;
factionflag.GetImageCollection = () => "flags";
var team = template.Get<LabelWidget>("TEAM");
team.GetText = () => (client.Team == 0) ? "-" : client.Team.ToString();
template.Get<ImageWidget>("STATUS_IMAGE").IsVisible = () =>
client.Bot != null || client.IsReady;
var kickButton = template.Get<ButtonWidget>("KICK");
kickButton.IsVisible = () => Game.IsHost && client.Index != orderManager.LocalClient.Index;
kickButton.IsDisabled = () => orderManager.LocalClient.IsReady;
kickButton.OnClick = () => orderManager.IssueOrder(Order.Command("kick " + client.Index));
} }
template.IsVisible = () => true; template.IsVisible = () => true;
@@ -518,7 +447,6 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
Widget template = null; Widget template = null;
var c = client; var c = client;
var ready = c.IsReady;
// get template for possible reuse // get template for possible reuse
if (idx < Players.Children.Count) if (idx < Players.Children.Count)
@@ -530,20 +458,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
if (template == null || template.Id != EditableSpectatorTemplate.Id) if (template == null || template.Id != EditableSpectatorTemplate.Id)
template = EditableSpectatorTemplate.Clone(); template = EditableSpectatorTemplate.Clone();
var name = template.Get<TextFieldWidget>("NAME"); LobbyUtils.SetupEditableNameWidget(template, null, c, orderManager);
name.IsDisabled = () => ready; LobbyUtils.SetupEditableColorWidget(template, null, c, orderManager, colorPreview);
LobbyUtils.SetupNameWidget(orderManager, c, name); LobbyUtils.SetupEditableReadyWidget(template, null, client, orderManager);
var color = template.Get<DropDownButtonWidget>("COLOR");
color.IsDisabled = () => ready;
color.OnMouseDown = _ => LobbyUtils.ShowColorDropDown(color, c, orderManager, colorPreview);
var colorBlock = color.Get<ColorBlockWidget>("COLORBLOCK");
colorBlock.GetColor = () => c.ColorRamp.GetColor(0);
var status = template.Get<CheckboxWidget>("STATUS_CHECKBOX");
status.IsChecked = () => ready;
status.OnClick = CycleReady;
} }
// Non-editable spectator // Non-editable spectator
else else
@@ -551,20 +468,13 @@ namespace OpenRA.Mods.RA.Widgets.Logic
if (template == null || template.Id != NonEditableSpectatorTemplate.Id) if (template == null || template.Id != NonEditableSpectatorTemplate.Id)
template = NonEditableSpectatorTemplate.Clone(); template = NonEditableSpectatorTemplate.Clone();
template.Get<LabelWidget>("NAME").GetText = () => c.Name; LobbyUtils.SetupNameWidget(template, null, client);
if (client.IsAdmin) LobbyUtils.SetupKickWidget(template, null, client, orderManager);
template.Get<LabelWidget>("NAME").Font = "Bold"; LobbyUtils.SetupColorWidget(template, null, client);
var color = template.Get<ColorBlockWidget>("COLOR"); LobbyUtils.SetupReadyWidget(template, null, client);
color.GetColor = () => c.ColorRamp.GetColor(0);
template.Get<ImageWidget>("STATUS_IMAGE").IsVisible = () => c.Bot != null || c.IsReady;
var kickButton = template.Get<ButtonWidget>("KICK");
kickButton.IsVisible = () => Game.IsHost && c.Index != orderManager.LocalClient.Index;
kickButton.IsDisabled = () => orderManager.LocalClient.IsReady;
kickButton.OnClick = () => orderManager.IssueOrder(Order.Command("kick " + c.Index));
} }
LobbyUtils.SetupAdminPingWidget(template, null, c, orderManager, true);
template.IsVisible = () => true; template.IsVisible = () => true;
if (idx >= Players.Children.Count) if (idx >= Players.Children.Count)
@@ -575,7 +485,6 @@ namespace OpenRA.Mods.RA.Widgets.Logic
idx++; idx++;
} }
// Spectate button // Spectate button
if (orderManager.LocalClient.Slot != null) if (orderManager.LocalClient.Slot != null)
{ {
@@ -602,11 +511,6 @@ namespace OpenRA.Mods.RA.Widgets.Logic
Players.RemoveChild(Players.Children[idx]); Players.RemoveChild(Players.Children[idx]);
} }
void CycleReady()
{
orderManager.IssueOrder(Order.Command("ready"));
}
class DropDownOption class DropDownOption
{ {
public string Title; public string Title;

View File

@@ -21,31 +21,6 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
public static class LobbyUtils public static class LobbyUtils
{ {
public static void SetupNameWidget(OrderManager orderManager, Session.Client c, TextFieldWidget name)
{
if (c.IsAdmin)
name.Font = "Bold";
name.Text = c.Name;
if (c.Ping > -1)
name.TextColor = GetPingColor(c.Ping);
name.OnEnterKey = () =>
{
name.Text = name.Text.Trim();
if (name.Text.Length == 0)
name.Text = c.Name;
name.LoseFocus();
if (name.Text == c.Name)
return true;
orderManager.IssueOrder(Order.Command("name " + name.Text));
Game.Settings.Player.Name = name.Text;
Game.Settings.Save();
return true;
};
name.OnLoseFocus = () => name.OnEnterKey();
}
class SlotDropDownOption class SlotDropDownOption
{ {
public string Title; public string Title;
@@ -92,7 +67,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
} }
public static void ShowTeamDropDown(DropDownButtonWidget dropdown, Session.Client client, public static void ShowTeamDropDown(DropDownButtonWidget dropdown, Session.Client client,
OrderManager orderManager, Map map) OrderManager orderManager, int teamCount)
{ {
Func<int, ScrollItemWidget, ScrollItemWidget> setupItem = (ii, itemTemplate) => Func<int, ScrollItemWidget, ScrollItemWidget> setupItem = (ii, itemTemplate) =>
{ {
@@ -103,7 +78,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
return item; return item;
}; };
var options = Exts.MakeArray(map.GetSpawnPoints().Length + 1, i => i).ToList(); var options = Exts.MakeArray(teamCount + 1, i => i).ToList();
dropdown.ShowDropDown("TEAM_DROPDOWN_TEMPLATE", 150, options, setupItem); dropdown.ShowDropDown("TEAM_DROPDOWN_TEMPLATE", 150, options, setupItem);
} }
@@ -192,13 +167,151 @@ namespace OpenRA.Mods.RA.Widgets.Logic
} }
} }
public static Color GetPingColor(int ping) static Color GetPingColor(Session.Client c)
{ {
if (ping > 720) // OrderLag > 6 if (c.Ping < 0) // Ping unknown
return Color.Gray;
if (c.Ping > 720) // OrderLag > 6
return Color.Red; return Color.Red;
if (ping > 360) // OrderLag > 3 if (c.Ping > 360) // OrderLag > 3
return Color.Orange; return Color.Orange;
return Color.LimeGreen; return Color.LimeGreen;
} }
public static void SetupAdminPingWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager, bool visible)
{
parent.Get("ADMIN_INDICATOR").IsVisible = () => c.IsAdmin;
var block = parent.Get("PING_BLOCK");
block.IsVisible = () => visible;
if (visible)
block.Get<ColorBlockWidget>("PING_COLOR").GetColor = () => GetPingColor(c);
}
public static void SetupEditableNameWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager)
{
var name = parent.Get<TextFieldWidget>("NAME");
name.IsVisible = () => true;
name.IsDisabled = () => orderManager.LocalClient.IsReady;
name.Text = c.Name;
name.OnEnterKey = () =>
{
name.Text = name.Text.Trim();
if (name.Text.Length == 0)
name.Text = c.Name;
name.LoseFocus();
if (name.Text == c.Name)
return true;
orderManager.IssueOrder(Order.Command("name " + name.Text));
Game.Settings.Player.Name = name.Text;
Game.Settings.Save();
return true;
};
name.OnLoseFocus = () => name.OnEnterKey();
}
public static void SetupNameWidget(Widget parent, Session.Slot s, Session.Client c)
{
var name = parent.Get<LabelWidget>("NAME");
name.GetText = () => c.Name;
}
public static void SetupEditableSlotWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager)
{
var slot = parent.Get<DropDownButtonWidget>("SLOT_OPTIONS");
slot.IsVisible = () => true;
slot.IsDisabled = () => orderManager.LocalClient.IsReady;
slot.GetText = () => c != null ? c.Name : s.Closed ? "Closed" : "Open";
slot.OnMouseDown = _ => LobbyUtils.ShowSlotDropDown(slot, s, c, orderManager);
// Ensure Name selector (if present) is hidden
var name = parent.GetOrNull("NAME");
if (name != null)
name.IsVisible = () => false;
}
public static void SetupSlotWidget(Widget parent, Session.Slot s, Session.Client c)
{
var name = parent.Get<LabelWidget>("NAME");
name.IsVisible = () => true;
name.GetText = () => c != null ? c.Name : s.Closed ? "Closed" : "Open";
// Ensure Slot selector (if present) is hidden
var slot = parent.GetOrNull("SLOT_OPTIONS");
if (slot != null)
slot.IsVisible = () => false;
}
public static void SetupKickWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager)
{
var button = parent.Get<ButtonWidget>("KICK");
button.IsVisible = () => Game.IsHost && c.Index != orderManager.LocalClient.Index;
button.IsDisabled = () => orderManager.LocalClient.IsReady;
button.OnClick = () => orderManager.IssueOrder(Order.Command("kick " + c.Index));
}
public static void SetupEditableColorWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager, ColorPreviewManagerWidget colorPreview)
{
var color = parent.Get<DropDownButtonWidget>("COLOR");
color.IsDisabled = () => (s != null && s.LockColor) || orderManager.LocalClient.IsReady;
color.OnMouseDown = _ => LobbyUtils.ShowColorDropDown(color, c, orderManager, colorPreview);
SetupColorWidget(color, s, c);
}
public static void SetupColorWidget(Widget parent, Session.Slot s, Session.Client c)
{
var color = parent.Get<ColorBlockWidget>("COLORBLOCK");
color.GetColor = () => c.ColorRamp.GetColor(0);
}
public static void SetupEditableFactionWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager, Dictionary<string,string> countryNames)
{
var dropdown = parent.Get<DropDownButtonWidget>("FACTION");
dropdown.IsDisabled = () => s.LockRace || orderManager.LocalClient.IsReady;
dropdown.OnMouseDown = _ => LobbyUtils.ShowRaceDropDown(dropdown, c, orderManager, countryNames);
SetupFactionWidget(dropdown, s, c, countryNames);
}
public static void SetupFactionWidget(Widget parent, Session.Slot s, Session.Client c, Dictionary<string,string> countryNames)
{
var factionname = parent.Get<LabelWidget>("FACTIONNAME");
factionname.GetText = () => countryNames[c.Country];
var factionflag = parent.Get<ImageWidget>("FACTIONFLAG");
factionflag.GetImageName = () => c.Country;
factionflag.GetImageCollection = () => "flags";
}
public static void SetupEditableTeamWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager, int teamCount)
{
var dropdown = parent.Get<DropDownButtonWidget>("TEAM");
dropdown.IsDisabled = () => s.LockTeam || orderManager.LocalClient.IsReady;
dropdown.OnMouseDown = _ => LobbyUtils.ShowTeamDropDown(dropdown, c, orderManager, teamCount);
dropdown.GetText = () => (c.Team == 0) ? "-" : c.Team.ToString();
}
public static void SetupTeamWidget(Widget parent, Session.Slot s, Session.Client c)
{
parent.Get<LabelWidget>("TEAM").GetText = () => (c.Team == 0) ? "-" : c.Team.ToString();
}
public static void SetupEditableReadyWidget(Widget parent, Session.Slot s, Session.Client c, OrderManager orderManager)
{
var status = parent.Get<CheckboxWidget>("STATUS_CHECKBOX");
status.IsChecked = () => orderManager.LocalClient.IsReady || c.Bot != null;
status.IsVisible = () => true;
status.IsDisabled = () => c.Bot != null;
status.OnClick = () => orderManager.IssueOrder(Order.Command("ready"));
}
public static void SetupReadyWidget(Widget parent, Session.Slot s, Session.Client c)
{
parent.Get<ImageWidget>("STATUS_IMAGE").IsVisible = () => c.IsReady || c.Bot != null;
}
} }
} }

View File

@@ -13,7 +13,7 @@
height="512" height="512"
id="svg2" id="svg2"
version="1.1" version="1.1"
inkscape:version="0.48.1 r9760" inkscape:version="0.48.2 r9819"
sodipodi:docname="chrome.svg" sodipodi:docname="chrome.svg"
inkscape:export-filename="/Users/paul/src/OpenRA/mods/cnc/uibits/chrome.png" inkscape:export-filename="/Users/paul/src/OpenRA/mods/cnc/uibits/chrome.png"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
@@ -61,9 +61,9 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="2" inkscape:zoom="11.313708"
inkscape:cx="159.47924" inkscape:cx="352.22285"
inkscape:cy="358.66173" inkscape:cy="474.91804"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="false" showgrid="false"
@@ -663,7 +663,7 @@
sodipodi:end="6.2831853" sodipodi:end="6.2831853"
sodipodi:start="0.00014815468" sodipodi:start="0.00014815468"
transform="matrix(0.90203431,0,0,0.77317229,6.750015,557.2837)" transform="matrix(0.90203431,0,0,0.77317229,6.750015,557.2837)"
d="m 290.17741,50.543926 a 4.9887238,5.8201776 0 1 1 0,-8.62e-4" d="m 290.17741,50.543926 c -4e-4,3.214396 -2.23426,5.819792 -4.98946,5.819316 -2.75519,-4.77e-4 -4.98839,-2.606645 -4.98798,-5.82104 4e-4,-3.214395 2.23426,-5.819792 4.98946,-5.819315 2.75491,4.76e-4 4.98798,2.606119 4.98798,5.820177"
sodipodi:ry="5.8201776" sodipodi:ry="5.8201776"
sodipodi:rx="4.9887238" sodipodi:rx="4.9887238"
sodipodi:cy="50.543064" sodipodi:cy="50.543064"
@@ -733,7 +733,7 @@
sodipodi:cy="50.543064" sodipodi:cy="50.543064"
sodipodi:rx="4.9887238" sodipodi:rx="4.9887238"
sodipodi:ry="5.8201776" sodipodi:ry="5.8201776"
d="m 290.17741,50.543926 a 4.9887238,5.8201776 0 1 1 0,-8.62e-4" d="m 290.17741,50.543926 c -4e-4,3.214396 -2.23426,5.819792 -4.98946,5.819316 -2.75519,-4.77e-4 -4.98839,-2.606645 -4.98798,-5.82104 4e-4,-3.214395 2.23426,-5.819792 4.98946,-5.819315 2.75491,4.76e-4 4.98798,2.606119 4.98798,5.820177"
transform="matrix(0.90203431,0,0,0.77317229,38.750015,525.2837)" transform="matrix(0.90203431,0,0,0.77317229,38.750015,525.2837)"
sodipodi:start="0.00014815468" sodipodi:start="0.00014815468"
sodipodi:end="6.2831853" sodipodi:end="6.2831853"
@@ -1274,5 +1274,13 @@
inkscape:export-filename="/Users/paul/src/OpenRA/mods/cnc/uibits/rect3776.png" inkscape:export-filename="/Users/paul/src/OpenRA/mods/cnc/uibits/rect3776.png"
inkscape:export-xdpi="90" inkscape:export-xdpi="90"
inkscape:export-ydpi="90" /> inkscape:export-ydpi="90" />
<path
style="fill:#ffc000;fill-opacity:1;stroke:none"
d="m 340,584.3622 0,-5 1.81818,2 2.18182,-2 2.18182,2 1.81818,-2 0,5 z"
id="path3179"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

View File

@@ -386,9 +386,10 @@ music: chrome.png
next: 256,16,16,16 next: 256,16,16,16
prev: 272,16,16,16 prev: 272,16,16,16
spawnpoints: chrome.png lobby-bits: chrome.png
owned: 256,32,16,16 spawn-claimed: 256,32,16,16
unowned: 256,48,16,16 spawn-unclaimed: 256,48,16,16
admin: 340,39,7,5
checkbox-bits: chrome.png checkbox-bits: chrome.png
checked: 272,32,16,16 checked: 272,32,16,16

View File

@@ -68,15 +68,35 @@ Container@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Background@PING_BLOCK:
Background:button
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
TextField@NAME: TextField@NAME:
Text:Name Text:Name
Width:205 X:15
Width:190
Height:25 Height:25
MaxLength:16 MaxLength:16
Visible:false Visible:false
DropDownButton@BOT_DROPDOWN: DropDownButton@SLOT_OPTIONS:
Text:Name Text:Name
Width:205 X:15
Width:190
Height:25 Height:25
Font:Regular Font:Regular
Visible:false Visible:false
@@ -136,11 +156,29 @@ Container@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Background@PING_BLOCK:
Background:button
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
Label@NAME: Label@NAME:
Text:Name Text:Name
Width:200 Width:185
Height:25 Height:25
X:5 X:15
Y:0-1 Y:0-1
Button@KICK: Button@KICK:
Text:X Text:X
@@ -149,12 +187,12 @@ Container@SERVER_LOBBY:
X:180 X:180
Y:2 Y:2
Font:Bold Font:Bold
ColorBlock@COLOR: ColorBlock@COLORBLOCK:
X:215 X:215
Y:6 Y:6
Width:35 Width:35
Height:13 Height:13
Label@FACTION: Container@FACTION:
Width:100 Width:100
Height:25 Height:25
X:285 X:285
@@ -192,9 +230,10 @@ Container@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
DropDownButton@NAME_HOST: DropDownButton@SLOT_OPTIONS:
Text:Name Text:Name
Width:205 X:15
Width:190
Height:25 Height:25
Font:Regular Font:Regular
Visible:false Visible:false
@@ -202,7 +241,7 @@ Container@SERVER_LOBBY:
Text:Name Text:Name
Width:200 Width:200
Height:25 Height:25
X:5 X:15
Y:0-1 Y:0-1
Visible:false Visible:false
Button@JOIN: Button@JOIN:
@@ -219,9 +258,28 @@ Container@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Background@PING_BLOCK:
Background:button
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
TextField@NAME: TextField@NAME:
Text:Name Text:Name
Width:205 X:15
Width:190
Height:25 Height:25
MaxLength:16 MaxLength:16
DropDownButton@COLOR: DropDownButton@COLOR:
@@ -256,11 +314,29 @@ Container@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Background@PING_BLOCK:
Background:button
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
Label@NAME: Label@NAME:
Text:Name Text:Name
Width:200 Width:185
Height:25 Height:25
X:5 X:15
Y:0-1 Y:0-1
Button@KICK: Button@KICK:
Text:X Text:X
@@ -269,7 +345,7 @@ Container@SERVER_LOBBY:
X:180 X:180
Y:2 Y:2
Font:Bold Font:Bold
ColorBlock@COLOR: ColorBlock@COLORBLOCK:
X:215 X:215
Y:6 Y:6
Width:35 Width:35
@@ -300,9 +376,9 @@ Container@SERVER_LOBBY:
Button@SPECTATE: Button@SPECTATE:
Text:Spectate Text:Spectate
Font:Regular Font:Regular
Width:470 Width:455
Height:25 Height:25
X:0 X:15
Y:0 Y:0
Container@LABEL_CONTAINER: Container@LABEL_CONTAINER:
X:20 X:20

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

@@ -236,9 +236,10 @@ dialog: dialog.png
corner-bl: 191,489,9,9 corner-bl: 191,489,9,9
corner-br: 200,489,9,9 corner-br: 200,489,9,9
spawnpoints: spawnpoints.png lobby-bits: spawnpoints.png
unowned: 528,128,16,16 spawn-unclaimed: 528,128,16,16
owned: 512,128,16,16 spawn-claimed: 512,128,16,16
admin: 37,5,7,5
strategic: strategic.png strategic: strategic.png
unowned: 0,0,32,32 unowned: 0,0,32,32

View File

@@ -48,16 +48,33 @@ Background@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Container@PING_BLOCK:
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
TextField@NAME: TextField@NAME:
Text:Name Text:Name
Width:150 X:15
Width:135
Height:25 Height:25
X:0
Y:0
MaxLength:16 MaxLength:16
DropDownButton@BOT_DROPDOWN: DropDownButton@SLOT_OPTIONS:
Text:Name Text:Name
Width:150 X:15
Width:135
Height:25 Height:25
Font:Regular Font:Regular
Visible:false Visible:false
@@ -117,11 +134,28 @@ Background@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Container@PING_BLOCK:
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
Label@NAME: Label@NAME:
Text:Name Text:Name
Width:145 Width:130
Height:25 Height:25
X:5 X:20
Y:0-1 Y:0-1
Button@KICK: Button@KICK:
Text:X Text:X
@@ -130,12 +164,12 @@ Background@SERVER_LOBBY:
X:125 X:125
Y:2 Y:2
Font:Bold Font:Bold
ColorBlock@COLOR: ColorBlock@COLORBLOCK:
X:165 X:165
Y:6 Y:6
Width:45 Width:45
Height:13 Height:13
Label@FACTION: Container@FACTION:
Width:130 Width:130
Height:25 Height:25
X:250 X:250
@@ -167,7 +201,6 @@ Background@SERVER_LOBBY:
Height:20 Height:20
ImageCollection:checkbox-bits ImageCollection:checkbox-bits
ImageName:checked ImageName:checked
Container@TEMPLATE_EMPTY: Container@TEMPLATE_EMPTY:
X:5 X:5
Y:0 Y:0
@@ -177,15 +210,15 @@ Background@SERVER_LOBBY:
Children: Children:
Label@NAME: Label@NAME:
Text:Name Text:Name
Width:145 Width:130
Height:25 Height:25
X:5 X:20
Y:0-1 Y:0-1
DropDownButton@NAME_HOST: DropDownButton@SLOT_OPTIONS:
Text:Name Text:Name
Width:150 Width:135
Height:25 Height:25
X:0 X:15
Y:0 Y:0
Visible:false Visible:false
Button@JOIN: Button@JOIN:
@@ -201,9 +234,27 @@ Background@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Container@PING_BLOCK:
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
TextField@NAME: TextField@NAME:
Text:Name Text:Name
Width:150 X:15
Width:135
Height:25 Height:25
MaxLength:16 MaxLength:16
DropDownButton@COLOR: DropDownButton@COLOR:
@@ -238,7 +289,6 @@ Background@SERVER_LOBBY:
Height:20 Height:20
ImageCollection:checkbox-bits ImageCollection:checkbox-bits
ImageName:checked ImageName:checked
Container@TEMPLATE_NONEDITABLE_SPECTATOR: Container@TEMPLATE_NONEDITABLE_SPECTATOR:
X:5 X:5
Y:0 Y:0
@@ -246,11 +296,28 @@ Background@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Container@PING_BLOCK:
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
Label@NAME: Label@NAME:
Text:Name Text:Name
Width:145 Width:130
Height:25 Height:25
X:5 X:20
Y:0-1 Y:0-1
Button@KICK: Button@KICK:
Text:X Text:X
@@ -259,7 +326,7 @@ Background@SERVER_LOBBY:
X:125 X:125
Y:2 Y:2
Font:Bold Font:Bold
ColorBlock@COLOR: ColorBlock@COLORBLOCK:
X:165 X:165
Y:6 Y:6
Width:45 Width:45

View File

@@ -169,9 +169,10 @@ dialog: dialog.png
corner-bl: 191,489,9,9 corner-bl: 191,489,9,9
corner-br: 200,489,9,9 corner-br: 200,489,9,9
spawnpoints: spawnpoints.png lobby-bits: spawnpoints.png
unowned: 528,128,16,16 spawn-unclaimed: 528,128,16,16
owned: 512,128,16,16 spawn-claimed: 512,128,16,16
admin: 37,5,7,5
strategic: strategic.png strategic: strategic.png
unowned: 0,0,32,32 unowned: 0,0,32,32

View File

@@ -48,16 +48,33 @@ Background@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Container@PING_BLOCK:
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
TextField@NAME: TextField@NAME:
Text:Name Text:Name
Width:150 X:15
Width:135
Height:25 Height:25
X:0
Y:0
MaxLength:16 MaxLength:16
DropDownButton@BOT_DROPDOWN: DropDownButton@SLOT_OPTIONS:
Text:Name Text:Name
Width:150 X:15
Width:135
Height:25 Height:25
Font:Regular Font:Regular
Visible:false Visible:false
@@ -117,11 +134,28 @@ Background@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Container@PING_BLOCK:
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
Label@NAME: Label@NAME:
Text:Name Text:Name
Width:145 Width:130
Height:25 Height:25
X:5 X:20
Y:0-1 Y:0-1
Button@KICK: Button@KICK:
Text:X Text:X
@@ -130,12 +164,12 @@ Background@SERVER_LOBBY:
X:125 X:125
Y:2 Y:2
Font:Bold Font:Bold
ColorBlock@COLOR: ColorBlock@COLORBLOCK:
X:165 X:165
Y:6 Y:6
Width:45 Width:45
Height:13 Height:13
Label@FACTION: Container@FACTION:
Width:130 Width:130
Height:25 Height:25
X:250 X:250
@@ -167,7 +201,6 @@ Background@SERVER_LOBBY:
Height:20 Height:20
ImageCollection:checkbox-bits ImageCollection:checkbox-bits
ImageName:checked ImageName:checked
Container@TEMPLATE_EMPTY: Container@TEMPLATE_EMPTY:
X:5 X:5
Y:0 Y:0
@@ -177,15 +210,15 @@ Background@SERVER_LOBBY:
Children: Children:
Label@NAME: Label@NAME:
Text:Name Text:Name
Width:145 Width:130
Height:25 Height:25
X:5 X:20
Y:0-1 Y:0-1
DropDownButton@NAME_HOST: DropDownButton@SLOT_OPTIONS:
Text:Name Text:Name
Width:150 Width:135
Height:25 Height:25
X:0 X:15
Y:0 Y:0
Visible:false Visible:false
Button@JOIN: Button@JOIN:
@@ -201,9 +234,27 @@ Background@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Container@PING_BLOCK:
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
TextField@NAME: TextField@NAME:
Text:Name Text:Name
Width:150 X:15
Width:135
Height:25 Height:25
MaxLength:16 MaxLength:16
DropDownButton@COLOR: DropDownButton@COLOR:
@@ -238,7 +289,6 @@ Background@SERVER_LOBBY:
Height:20 Height:20
ImageCollection:checkbox-bits ImageCollection:checkbox-bits
ImageName:checked ImageName:checked
Container@TEMPLATE_NONEDITABLE_SPECTATOR: Container@TEMPLATE_NONEDITABLE_SPECTATOR:
X:5 X:5
Y:0 Y:0
@@ -246,11 +296,28 @@ Background@SERVER_LOBBY:
Height:25 Height:25
Visible:false Visible:false
Children: Children:
Image@ADMIN_INDICATOR:
ImageCollection:lobby-bits
ImageName:admin
X:2
Visible:false
Container@PING_BLOCK:
X:0
Y:6
Width:11
Height:14
Visible:false
Children:
ColorBlock@PING_COLOR:
X:2
Y:2
Width:PARENT_RIGHT-4
Height:PARENT_BOTTOM-4
Label@NAME: Label@NAME:
Text:Name Text:Name
Width:145 Width:130
Height:25 Height:25
X:5 X:20
Y:0-1 Y:0-1
Button@KICK: Button@KICK:
Text:X Text:X
@@ -259,7 +326,7 @@ Background@SERVER_LOBBY:
X:125 X:125
Y:2 Y:2
Font:Bold Font:Bold
ColorBlock@COLOR: ColorBlock@COLORBLOCK:
X:165 X:165
Y:6 Y:6
Width:45 Width:45

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB