/// <summary> /// /// </summary> public GameScreen(GameUI parent) : base(parent) { this.parent = parent; universeSession = parent.Session; universeGroup = universeSession.UniverseGroup; mapManager = universeSession.MapManager; controllablesManager = universeSession.ControllablesManager; foreach (Flattiverse.Team team in universeGroup.Teams) { SolidColorBrush teamColor = new SolidColorBrush(parent.WindowRenderTarget, new SharpDX.Color4(team.Red, team.Green, team.Blue, 1f)); if (!Brushes.SolidColorBrushes.TeamColors.ContainsKey(team.Name)) { Brushes.SolidColorBrushes.TeamColors.Add(team.Name, teamColor); } } dashedStrokeStyle = new StrokeStyle(parent.Direct2DFactory, new StrokeStyleProperties() { DashStyle = DashStyle.Dash, DashCap = CapStyle.Flat }); missionTargetTextFormat = new SharpDX.DirectWrite.TextFormat(parent.DirectWriteFactory, "Arial", SharpDX.DirectWrite.FontWeight.Normal, SharpDX.DirectWrite.FontStyle.Normal, 12f); scoreBoard = new UniverseTable(this, universeGroup, Brushes.SolidColorBrushes.BlackHalfTransparent); scoreBoard.AddColumn(" ", "SmallAvatar", 40f, UniverseTeamTable.MAX_COLUMN_HEIGHT); scoreBoard.AddColumn("Name", "Name", UniverseTeamTable.MAX_COLUMN_WIDTH, UniverseTeamTable.MAX_COLUMN_HEIGHT); scoreBoard.AddColumn("Score", "Score", UniverseTeamTable.MAX_COLUMN_WIDTH, UniverseTeamTable.MAX_COLUMN_HEIGHT); scoreBoard.AddColumn("Kills", "Kills", UniverseTeamTable.MAX_COLUMN_WIDTH, UniverseTeamTable.MAX_COLUMN_HEIGHT); scoreBoard.AddColumn("Deaths", "Deaths", UniverseTeamTable.MAX_COLUMN_WIDTH, UniverseTeamTable.MAX_COLUMN_HEIGHT); scoreBoard.AddColumn("Avg. Commit Time", "AverageCommitTime", 250f, UniverseTeamTable.MAX_COLUMN_HEIGHT); currentShip = controllablesManager.CreateShip("D2RP", $"R1P"); shipList.Add(currentShip); currentShip.TryContinue(); }
/// <summary> /// A universe session to manage all data for this universe /// </summary> /// <param name="parent">The parent connection to join this session</param> /// <param name="universeGroup">The universe group to join</param> /// <param name="name">The name to use to join this session</param> /// <param name="team">The team to join</param> /// <param name="clan">The clan name to use</param> /// <param name="password">The password of the universe group</param> internal UniverseSession(Connection parent, Flattiverse.UniverseGroup universeGroup, string name, Flattiverse.Team team, string clan = null, string password = null) { Id = counter++; Connection = parent; UniverseGroup = universeGroup; Name = name; Team = team; if (universeGroup.PasswordRequired) { universeGroup.Join(name, team, clan, password); } else { universeGroup.Join(name, team); } flowControls = new List <UniverseGroupFlowControlWrapper>(); ControllablesManager = new ControllablesManager(this); MapManager = new MapManager(this); }