public static void SendMenuBelong(Players.Player player) { NetworkMenu menu = new NetworkMenu(); menu.LocalStorage.SetAs("header", "Empire belong"); menu.Width = 700; NetworkUI.Items.Table table = new NetworkUI.Items.Table(700, 180) { ExternalMarginHorizontal = 0f }; { var headerRow = new NetworkUI.Items.HorizontalRow(new List <(IItem, int)>() { (new NetworkUI.Items.Label("Player"), 250), (new NetworkUI.Items.Label("Empire"), 250), (new NetworkUI.Items.Label("Rank"), 125) }); var headerBG = new NetworkUI.Items.BackgroundColor(headerRow, height: -1, color: NetworkUI.Items.Table.HEADER_COLOR); table.Header = headerBG; } table.Rows = new List <IItem>(); for (int i = 0; i < Players.CountConnected; i++) { Players.Player plr = Players.GetConnectedByIndex(i); List <(IItem, int)> emp = new List <(IItem, int)> { (new NetworkUI.Items.Label(plr.Name), 250) }; Empire empire = Empire.GetEmpire(plr); if (empire != null) { emp.Add((new NetworkUI.Items.Label(empire.Name), 250)); emp.Add((new NetworkUI.Items.Label(empire.GetRank(plr).ToString()), 250)); } else { emp.Add((new NetworkUI.Items.Label("-"), 250)); emp.Add((new NetworkUI.Items.Label("-"), 250)); } table.Rows.Add(new NetworkUI.Items.HorizontalRow(emp)); } menu.Items.Add(table); NetworkMenuManager.SendServerPopup(player, menu); }
public static void SendMenuManage(Players.Player player) { NetworkMenu menu = new NetworkMenu(); menu.LocalStorage.SetAs("header", "Empires"); menu.Width = 550; menu.Height = 600; NetworkUI.Items.Table table = new NetworkUI.Items.Table(550, 180) { ExternalMarginHorizontal = 0f }; { var headerRow = new NetworkUI.Items.HorizontalRow(new List <(IItem, int)>() { (new NetworkUI.Items.Label("Empire"), 250), (new NetworkUI.Items.Label("Action"), 250), }); var headerBG = new NetworkUI.Items.BackgroundColor(headerRow, height: -1, color: NetworkUI.Items.Table.HEADER_COLOR); table.Header = headerBG; } table.Rows = new List <IItem>(); var orderedEmpire = from empire in Empire.empires orderby empire.GetPlayers().Count() descending select empire; foreach (Empire empire in orderedEmpire) { List <(IItem, int)> emp = new List <(IItem, int)> { (new NetworkUI.Items.Label(empire.Name), 250), (new NetworkUI.Items.ButtonCallback("Imperium_ManageAsEmperor", new LabelData("Manage as Emperor", UnityEngine.Color.white, UnityEngine.TextAnchor.MiddleCenter), onClickActions: NetworkUI.Items.ButtonCallback.EOnClickActions.ClosePopup, ButtonPayload: new JObject() { { "empire", empire.Name } }), 250) }; table.Rows.Add(new NetworkUI.Items.HorizontalRow(emp)); } menu.Items.Add(table); NetworkMenuManager.SendServerPopup(player, menu); }
public static void SendMenuEmpireRequest(Players.Player player) { Empire empire = Empire.GetEmpire(player); if (null == empire) { Chatting.Chat.Send(player, "<color=orange>You do not belong to any empire.</color>"); return; } if (!empire.CanPermission(player.ID, Permissions.Invite)) { return; } NetworkMenu menu = new NetworkMenu { Width = 550 }; menu.LocalStorage.SetAs("header", "Join Request"); NetworkUI.Items.Table table = new NetworkUI.Items.Table(550, 180) { ExternalMarginHorizontal = 0f }; { var headerRow = new NetworkUI.Items.HorizontalRow(new List <(IItem, int)>() { (new NetworkUI.Items.Label("Empire"), 250), (new NetworkUI.Items.Label("Action"), 125), (new NetworkUI.Items.EmptySpace(), 125) }); var headerBG = new NetworkUI.Items.BackgroundColor(headerRow, height: -1, color: NetworkUI.Items.Table.HEADER_COLOR); table.Header = headerBG; } table.Rows = new List <IItem>(); foreach (NetworkID nID in empire.joinRequest) { List <(IItem, int)> requests = new List <(IItem, int)>(); Players.Player plr = Players.GetPlayer(nID); if (null != Empire.GetEmpire(plr)) { empire.joinRequest.Remove(nID); continue; } requests.Add((new NetworkUI.Items.Label(plr.Name), 250)); if (empire.GetPlayers().Count < maxMembers) { requests.Add((new NetworkUI.Items.ButtonCallback("Imperium_Request", new LabelData("Accept", UnityEngine.Color.white, UnityEngine.TextAnchor.MiddleCenter), ButtonPayload: new JObject() { { "accept", true }, { "player", plr.ID.ToString() } }), 125)); } else { requests.Add((new NetworkUI.Items.ButtonCallback("Imperium_Request", new LabelData("Accept", UnityEngine.Color.white, UnityEngine.TextAnchor.MiddleCenter), isInteractive: false), 125)); } requests.Add((new NetworkUI.Items.ButtonCallback("Imperium_Request", new LabelData("Reject", UnityEngine.Color.white, UnityEngine.TextAnchor.MiddleCenter), ButtonPayload: new JObject() { { "accept", false }, { "player", plr.ID.ToString() } }), 125)); table.Rows.Add(new NetworkUI.Items.HorizontalRow(requests)); } menu.Items.Add(table); NetworkMenuManager.SendServerPopup(player, menu); }
public static void SendMenuEmpire(Players.Player player) { Empire empire = Empire.GetEmpire(player); if (null == empire) { Chatting.Chat.Send(player, "<color=orange>You do not belong to any empire.</color>"); return; } NetworkMenu menu = new NetworkMenu { Width = 700, Height = 600 }; menu.LocalStorage.SetAs("header", empire.Name); /* K: ANNOUNCEMENT SYSTEM * if (empire.CanPermission(player, Permissions.Announcement)) * if (empire.joinRequest.Count > 0) * { * NetworkUI.Items.ButtonCallback b_announcement = new NetworkUI.Items.ButtonCallback("Empire_SetAnnouncement_NOTHING", new LabelData("Set Announcement", UnityEngine.Color.green, UnityEngine.TextAnchor.MiddleCenter)); * b_announcement.Enabled = false; * menu.Items.Add(b_announcement); * } */ menu.Items.Add(new NetworkUI.Items.ButtonCallback("Imperium_HELP", new LabelData("HELP", UnityEngine.Color.yellow, UnityEngine.TextAnchor.MiddleCenter))); if (empire.CanPermission(player.ID, Permissions.Invite)) { if (empire.joinRequest.Count > 0) { menu.Items.Add(new NetworkUI.Items.ButtonCallback("Imperium_ApplyManage", new LabelData("Manage applications", UnityEngine.Color.green, UnityEngine.TextAnchor.MiddleCenter))); } } if (empire.GetRank(player) == Rank.Emperor) { menu.Items.Add(new NetworkUI.Items.ButtonCallback("Imperium_BackPermission", new LabelData("Set Permissions", UnityEngine.Color.white, UnityEngine.TextAnchor.MiddleCenter))); menu.Items.Add(new NetworkUI.Items.ButtonCallback("Imperium_SettingsMenu", new LabelData("Settings", UnityEngine.Color.white, UnityEngine.TextAnchor.MiddleCenter))); } NetworkUI.Items.Table table = new NetworkUI.Items.Table(700, 800) { ExternalMarginHorizontal = 0f }; { NetworkUI.Items.HorizontalRow headerRow = new NetworkUI.Items.HorizontalRow { Items = new List <(IItem, int)> { (new NetworkUI.Items.Label("Name"), 250), (new NetworkUI.Items.Label("Rank"), 125) } }; if (ColonyCommands.ColonyCommandsMod.ColonyCommands) { headerRow.Items.Add((new NetworkUI.Items.Label("Last seen"), 125)); } headerRow.Items.Add((new NetworkUI.Items.EmptySpace(), 125)); var headerBG = new NetworkUI.Items.BackgroundColor(headerRow, height: -1, color: NetworkUI.Items.Table.HEADER_COLOR); table.Header = headerBG; } table.Rows = new List <IItem>(); foreach (Players.Player plr in empire.GetPlayersOrderedByRank()) { List <(IItem, int)> members = new List <(IItem, int)> { (new NetworkUI.Items.Label(plr.Name), 250), (new NetworkUI.Items.Label(empire.GetRank(plr).ToString()), 125) }; if (ColonyCommands.ColonyCommandsMod.ColonyCommands) { var m = ColonyCommands.ColonyCommandsMod.GetMethodFromColonyCommandsMod("ActivityTracker", "GetLastSeen"); if (m != null) { string lastseen = (string)m.Invoke(null, new object[] { plr.ID.ToStringReadable() }); if (!lastseen.Equals("never")) { lastseen = lastseen.Substring(0, lastseen.IndexOf(" ")).Trim(); } members.Add((new NetworkUI.Items.Label(lastseen), 125)); } else { members.Add((new NetworkUI.Items.EmptySpace(), 125)); } } if ((empire.CanPermission(player.ID, Permissions.Ranks) || empire.CanPermission(player.ID, Permissions.Kick)) && (empire.GetRank(player) < empire.GetRank(plr) || empire.GetRank(player) == Rank.Emperor) && !player.ID.Equals(plr.ID)) { members.Add((new NetworkUI.Items.ButtonCallback("Imperium_Manage", new LabelData("Manage", UnityEngine.Color.white, UnityEngine.TextAnchor.MiddleCenter), ButtonPayload: new JObject() { { "player", plr.ID.ToString() } }), 125)); } else { members.Add((new NetworkUI.Items.EmptySpace(), 125)); } table.Rows.Add(new NetworkUI.Items.HorizontalRow(members)); } table.Height = table.Rows.Count * 14 + 24; //Each row ~14 pixels + 24 for header & distance menu.Items.Add(table); NetworkMenuManager.SendServerPopup(player, menu); }
public static void SendMenuEmpireList(Players.Player player) { bool belongEmpire = null != Empire.GetEmpire(player); NetworkMenu menu = new NetworkMenu(); menu.LocalStorage.SetAs("header", "Empires"); menu.Width = 550; menu.Height = 600; if (!belongEmpire) { menu.Items.Add(new NetworkUI.Items.ButtonCallback("Imperium_NewEmpire", new LabelData("Found a new empire", UnityEngine.Color.white, UnityEngine.TextAnchor.MiddleCenter))); } NetworkUI.Items.Table table = new NetworkUI.Items.Table(550, 180) { ExternalMarginHorizontal = 0f }; { var headerRow = new NetworkUI.Items.HorizontalRow(new List <(IItem, int)>() { (new NetworkUI.Items.Label("Empire"), 250), (new NetworkUI.Items.Label("Action"), 150), (new NetworkUI.Items.Label("Members"), 100) }); var headerBG = new NetworkUI.Items.BackgroundColor(headerRow, height: -1, color: NetworkUI.Items.Table.HEADER_COLOR); table.Header = headerBG; } table.Rows = new List <IItem>(); var orderedEmpire = from empire in Empire.empires orderby empire.GetPlayers().Count() descending select empire; foreach (Empire empire in orderedEmpire) { List <(IItem, int)> emp = new List <(IItem, int)> { (new NetworkUI.Items.Label(empire.Name), 250) }; if (!belongEmpire && !empire.joinRequest.Contains(player.ID) && empire.GetPlayers().Count <= maxMembers) { emp.Add((new NetworkUI.Items.ButtonCallback("Imperium_Apply", new LabelData("Apply", UnityEngine.Color.white, UnityEngine.TextAnchor.MiddleCenter), ButtonPayload: new JObject() { { "empire", empire.Name } }), 150)); } else { emp.Add((new NetworkUI.Items.ButtonCallback("Imperium_Apply", new LabelData("Apply", UnityEngine.Color.white, UnityEngine.TextAnchor.MiddleCenter), isInteractive: false), 150)); } emp.Add((new NetworkUI.Items.Label(empire.GetPlayers().Count.ToString() + "/" + maxMembers), 100)); table.Rows.Add(new NetworkUI.Items.HorizontalRow(emp)); } menu.Items.Add(table); NetworkMenuManager.SendServerPopup(player, menu); }