コード例 #1
0
 public void ProcessNewTournamentSettings(TournamentSettings s)
 {
     lastTournamentSettings = s;
     SendNewTournamentSettings(s);
     //players.ForEach(p => { if (!p.Data.LobbyLeader) p.Data.LobbyReady = false; });
     UpdateLobbyPlayers();
 }
コード例 #2
0
 public PlayerListFile(TournamentPersistence storage, TournamentSettings settings)
 {
     _storage   = storage;
     _settings  = settings;
     AllPlayers = new ObservableCollection <Player>();
     Load();
 }
コード例 #3
0
 private void SendTournamentSettings(TournamentSettings s)
 {
     sceneMgr.Enqueue(new Action(() =>
     {
         sceneMgr.SendNewTournamentSettings(s);
     }));
 }
コード例 #4
0
    static void Update()
    {
        bool show =
            PlayerSettings.renderingPath != recommended_RenderPath ||
            PlayerSettings.colorSpace != recommended_ColorSpace ||
            PlayerSettings.defaultIsFullScreen != recommended_DefaultIsFullScreen ||
            PlayerSettings.apiCompatibilityLevel != recommended_APICompatibilityLevel ||
            PlayerSettings.companyName != recommended_CompanyName ||
            PlayerSettings.productName != recommended_ProductName ||
            PlayerSettings.resolutionDialogBanner == null ||
            PlayerSettings.GetIconsForTargetGroup(BuildTargetGroup.Unknown)[0] == null ||
            forceShow;

        if (show)
        {
            Screen.SetResolution(Screen.currentResolution.width, Screen.currentResolution.height, true);

            window          = GetWindow <TournamentSettings>(true, "Tournament Settings", true);
            window.position = new Rect
                              (
                (Screen.currentResolution.width / 2) - (windowSize.x / 2),
                (Screen.currentResolution.height / 2) - (windowSize.y / 2),
                windowSize.x,
                windowSize.y
                              );

            window.minSize = new Vector2(windowSize.x, windowSize.y);
            window.maxSize = new Vector2(windowSize.x, windowSize.y);
        }

        EditorApplication.update -= Update;
    }
コード例 #5
0
        public void SendNewTournamentSettings(TournamentSettings s)
        {
            NetOutgoingMessage msg = CreateNetMessage();

            msg.Write((int)PacketType.TOURNAMENT_SETTINGS);
            msg.Write(s);
            SendMessage(msg);
        }
コード例 #6
0
        private void btnCreateTournament_Click(object sender, RoutedEventArgs e)
        {
            if (String.IsNullOrWhiteSpace(tbName.Text))
            {
                return;
            }

            TournamentSettings s = new TournamentSettings();

            s.Name   = tbName.Text;
            s.Leader = App.Instance.PlayerName;
            s.MMType = (MatchManagerType)cbType.SelectedValue;
            s.Level  = (GameLevel)cbMap.SelectedValue;
            try
            {
                s.RoundCount = int.Parse(tbRounds.Text, CultureInfo.InvariantCulture);
                if (s.RoundCount < 1)
                {
                    throw new Exception();
                }
            }
            catch (Exception)
            {
                s.RoundCount  = 1;
                tbRounds.Text = 1.ToString(Strings.Culture);
            }

/*#if !DEBUG
 *          s.BotCount = 0;
 *          s.BotType = SharedDef.DEFAULT_BOT;
 #else*/
            try
            {
                s.BotCount = int.Parse(tbBotCount.Text, CultureInfo.InvariantCulture);
            }
            catch (Exception)
            {
                s.BotCount = 0;
            }

            s.BotType = (BotType)cbBot.SelectedValue;
//#endif

            App.Instance.StartTournamentLobby(serverAddress);

            App.Instance.GetSceneMgr().Enqueue(new Action(() =>
            {
                App.Instance.GetSceneMgr().ProcessNewTournamentSettings(s);
            }));

            LobbyUC lobby = LogicalTreeHelper.FindLogicalNode(Application.Current.MainWindow, "lobbyWindow") as LobbyUC;

            if (lobby != null)
            {
                lobby.UpdateTournamentSettings(s);
            }
        }
コード例 #7
0
        public void StartSoloGame(TournamentSettings s)
        {
            if (!StartLocalServer(SharedDef.LOCAL_SERVER_PORT))
            {
                return;
            }

            sceneMgr.SetRemoteServerAddress(System.Net.IPAddress.Loopback.ToString(), SharedDef.LOCAL_SERVER_PORT);

            StartGame(Gametype.SOLO_GAME);

            SendTournamentSettings(s);
        }
コード例 #8
0
        // other

        public static void Write(this NetOutgoingMessage msg, TournamentSettings s)
        {
            msg.Write(s.ServerId);
            msg.Write(s.Name);
            msg.Write(s.Leader);
            msg.Write((int)s.MMType);
            msg.Write((int)s.Level);
            msg.Write(s.RoundCount);
            msg.Write((int)s.BotType);
            msg.Write(s.BotCount);
            msg.Write(s.PlayedMatches);
            msg.Write(s.Running);
        }
コード例 #9
0
        private void btnPlayAsSpectator_Click(object sender, RoutedEventArgs e)
        {
            App.Instance.StartTournamentLobby("127.0.0.1");

            App.Instance.GetSceneMgr().Enqueue(new Action(() =>
            {
                App.Instance.GetSceneMgr().GetCurrentPlayer().Data.LobbyReady = true;
                App.Instance.GetSceneMgr().SendPlayerReadyMessage(true);
                TournamentSettings s = new TournamentSettings(true);
                s.MMType             = Orbit.Core.Server.Match.MatchManagerType.TEST_LEADER_SPECTATOR;
                App.Instance.GetSceneMgr().ProcessNewTournamentSettings(s);
                App.Instance.GetSceneMgr().SendStartGameRequest();
            }));
        }
コード例 #10
0
        private void StartGame(object sender, RoutedEventArgs e)
        {
            App.Instance.CreateGameGui();

            TournamentSettings s = new TournamentSettings();

            s.MMType     = MatchManagerType.SKIRMISH;
            s.Level      = GameLevel.BASIC_MAP;
            s.RoundCount = 1;
            s.BotCount   = 1;
            s.BotType    = type;

            App.Instance.StartSoloGame(s);
        }
コード例 #11
0
        public void UpdateTournamentSettings(TournamentSettings s)
        {
            btnReady.IsEnabled = true;
            lblName.Content    = s.Name;
            lblType.Content    = MatchManagerInfoAccessor.GetInfo(s.MMType).Text;
            lblMap.Content     = LevelInfoAccessor.GetInfo(s.Level).Text;
            lblRounds.Content  = s.RoundCount.ToString(Strings.Culture);
            round = s.PlayedMatches;
            UpdateMatchCount(s.RoundCount);

//#if DEBUG
            lblBotLevel.Content = BotNameAccessor.GetBotName(s.BotType);
            lblBots.Content     = s.BotCount.ToString(Strings.Culture);
//#endif
            // TODO: mozna se pozdeji pridaji boti i pro normalni hrace - potom se zde musi zobrazit, kdyz prijde zprava
        }
コード例 #12
0
        private HashSet <TournamentSettings> GetAvailableTournaments()
        {
            HashSet <TournamentSettings> available = new HashSet <TournamentSettings>();

            foreach (KeyValuePair <NetConnection, ServerMgr> pair in connections)
            {
                if (pair.Value.GameType == Gametype.TOURNAMENT_GAME && pair.Value.TournamentSettings != null)
                {
                    TournamentSettings ts = pair.Value.TournamentSettings;
                    ts.Running = pair.Value.IsGameRunning() || pair.Value.GetPlayerCount() >= SharedDef.MAX_TOURNAMENT_PLAYERS;
                    available.Add(ts);
                }
            }

            return(available);
        }
コード例 #13
0
        public static TournamentSettings ReadTournamentSettings(this NetIncomingMessage msg)
        {
            TournamentSettings s = new TournamentSettings();

            s.ServerId      = msg.ReadInt32();
            s.Name          = msg.ReadString();
            s.Leader        = msg.ReadString();
            s.MMType        = (MatchManagerType)msg.ReadInt32();
            s.Level         = (GameLevel)msg.ReadInt32();
            s.RoundCount    = msg.ReadInt32();
            s.BotType       = (BotType)msg.ReadInt32();
            s.BotCount      = msg.ReadInt32();
            s.PlayedMatches = msg.ReadInt32();
            s.Running       = msg.ReadBoolean();
            return(s);
        }
コード例 #14
0
        private void CreateNewServerMgr(Gametype type)
        {
            mgr = new ServerMgr();
            mgr.Init(type, server);

            if (GameStartedCallback != null)
            {
                GameStartedCallback(type == Gametype.TOURNAMENT_GAME);
            }

            mgr.CloseCallback = ManagerClosed;

            Thread serverThread = new Thread(new ThreadStart(mgr.Run));

            serverThread.IsBackground = false;
            serverThread.Name         = "Server Thread";
            serverThread.Start();

            switch (type)
            {
            case Gametype.SOLO_GAME:
                // v solo se nastavi tournament settings primo pres herni aplikaci
                break;

            case Gametype.MULTIPLAYER_GAME:
            {
                TournamentSettings s = new TournamentSettings();
                s.MMType     = MatchManagerType.QUICK_GAME;
                s.Level      = GameLevel.BASIC_MAP;
                s.RoundCount = 1;
                s.BotCount   = 0;
                mgr.Enqueue(new Action(() => mgr.TournamentSettings = s));
            }
            break;

            case Gametype.TOURNAMENT_GAME:
                // v tournamentu se poslou setting pozdeji, az je hrac potvrdi
                break;
            }
        }
コード例 #15
0
ファイル: CommandsForm.cs プロジェクト: Iojioji/OsurRefHelper
        TournamentSettings LoadSettings()
        {
            TournamentSettings aux = new TournamentSettings();

            if (File.Exists($"{appPath}/Data/Settings.json"))
            {
                try
                {
                    aux = JsonConvert.DeserializeObject <TournamentSettings>(File.ReadAllText($"{appPath}/Data/Settings.json"));
                    return(aux);
                }
                catch (Exception e)
                {
                    MessageBox.Show($"Hijuesu, algo se rompio intentando los settings\r\nMandale esto al menso del Iojioji\r\n\r\n{e.Message}", "Error inesperado al cargar el pool O:", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(null);
                }
            }
            else
            {
                MessageBox.Show($"No se encontro el archivo de los settings\r\nAsegurate que se encuentre en '{appPath}Data' un archivo llamado Settings.json", "No pude cargar el pool :'c", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(null);
            }
        }
コード例 #16
0
        private void ReceivedTournaments(NetIncomingMessage msg)
        {
            SetServerStatus(OnlineStatus.ONLINE);
            statusReceived = true;

            var previouslySelectedTournament = lvTournaments.SelectedItem == null ? null : lvTournaments.SelectedItem as VisualizableTorunamentSettings;
            VisualizableTorunamentSettings selectedTournament = null;

            availableTournaments.Clear();
            List <TournamentSettings> tss = new List <TournamentSettings>();

            int count = msg.ReadInt32();

            for (int i = 0; i < count; ++i)
            {
                TournamentSettings ts = msg.ReadTournamentSettings();
                tss.Add(ts);
                var vts = new VisualizableTorunamentSettings(ts);
                availableTournaments.Add(vts);

                if (previouslySelectedTournament != null && selectedTournament == null && previouslySelectedTournament.Name == ts.Name)
                {
                    lvTournaments.SelectedItem = vts;
                }
            }

            //if (previouslySelectedTournament != null)
            //    lvTournaments.SelectedItem = ;

            if (ReceivedNewTournamentsCallback != null)
            {
                ReceivedNewTournamentsCallback(tss, serverAddress);
            }

            lblTournamentCount.Content = count.ToString(Strings.Culture);
        }
コード例 #17
0
 public SettingsViewModel(TournamentSettings settings)
 {
     _settings = settings;
 }