Exemple #1
0
        /// <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();
        }
Exemple #2
0
        /// <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);
        }