コード例 #1
0
        public override void PopulateGame(ServerGame game)
        {
            if (!game.GameId.HasValue)
            {
                return;
            }

            game.Players = new List <ServerPlayer>();
            Random r = new Random((int)game.GameId);

            for (int i = 0; i < 10; i++)
            {
                var          x      = r.Next(0, adjectives.Length);
                var          y      = r.Next(0, nouns.Length);
                ServerPlayer player = new ServerPlayer
                {
                    Colour   = (Colour)r.Next(1, 9),
                    Score    = r.Next(-100, 1000) * 10 + r.Next(0, 3) * 2001,
                    Pack     = "Pack" + r.Next(1, 30).ToString("D2"),
                    PlayerId = string.Format("demo{0:D2}{1:D2}", x, y),
                    Alias    = adjectives[x] + nouns[y]
                };
                game.Players.Add(player);
            }
        }
コード例 #2
0
 static void Main(string[] args)
 {
     LogManager.Init();
     LogManager.GetLoggerClass().Infos("Voulez vous voir les datas en Hexa ? [y/n]");
     do
     {
         var key = Console.ReadLine();
         if (key == "y")
         {
             Hexa = true;
             break;
         }
         else if (key == "n")
         {
             break;
         }
         else
         {
             LogManager.GetLoggerClass().Infos("Commande incorrect merci de choisir entre 'y' ou 'n' !");
         }
     } while (true);
     LogManager.GetLoggerClass().Infos("Lancement du MITM !");
     ServerLogin = new ServerAuth(5558);
     ServerGame  = new ServerGame(5556);
     Console.Read();
 }
コード例 #3
0
        public override void PopulateGame(ServerGame game)
        {
            game.Players = new List <ServerPlayer>
            {
                new ServerPlayer
                {
                    Colour   = Colour.Red,
                    Score    = 1000,
                    Pack     = "Pack 1",
                    PlayerId = "ABC-001",
                    Alias    = "Alias 1"
                },

                new ServerPlayer
                {
                    Colour   = Colour.Red,
                    Score    = 2000,
                    Pack     = "Pack 2",
                    PlayerId = "ABC-002",
                    Alias    = "Alias 2"
                },

                new ServerPlayer
                {
                    Colour   = Colour.Blue,
                    Score    = 3000,
                    Pack     = "Pack 3",
                    PlayerId = "ABC-003",
                    Alias    = "Alias 3"
                }
            };
        }
コード例 #4
0
 private static void StartRoundForGame(ServerGame game)
 {
     game.IncrementRoundNumber();
     game.SelectNextCardCzar();
     game.SelectNextQuestion();
     game.Status = GameStatus.CollectingAnswers;
 }
コード例 #5
0
        void FillGames(string sql, List <ServerGame> games)
        {
            if (!EnsureConnected())
            {
                return;
            }

            MySqlCommand cmd = new MySqlCommand(sql, connection);

            using (var reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    ServerGame game = new ServerGame
                    {
                        GameId      = GetInt(reader, "Game_ID"),
                        Description = GetString(reader, "Description"),
                        Time        = GetDateTime(reader, "Start_Time"),
                        EndTime     = GetDateTime(reader, "Finish_Time"),
                        OnServer    = true
                    };
                    game.InProgress = game.EndTime == default;
                    games.Add(game);
                }
            }
        }
コード例 #6
0
    public void SpawnPlayer(ServerGame game)
    {
        var queueButton = GameObject.FindGameObjectWithTag("QueueButton").GetComponent <Button>();

        Time.timeScale = GameStartUiManager.OriginalTimeScalse;
        queueButton.gameObject.SetActive(false);

        m_currenGame = game;
        var controllerPlayer = game.Player1.PlayerId == game.ControllerPlayerId ? game.Player1 : game.Player2;
        var otherPlayer      = game.Player1.PlayerId == game.ControllerPlayerId ? game.Player2 : game.Player1;

        var spawnPointController  = new Vector3(controllerPlayer.PositionX, 0, controllerPlayer.PositionZ);
        var spawnPointOtherPlayer = new Vector3(otherPlayer.PositionX, 0, otherPlayer.PositionZ);
        var rotation = new Quaternion(0, 0, 0, 0);

        Player.transform.position = spawnPointController;
        Console.WriteLine("Spawned");
        GameStartUiManager.DisableShoot = false;


        Instantiate(OtherPlayer, spawnPointOtherPlayer, rotation);
        OtherPlayer = GameObject.FindGameObjectWithTag("OtherPlayer");
        var healthSlider = GameObject.FindGameObjectWithTag("Player1HealthSlider").GetComponent <Slider>();

        OtherPlayer.GetComponent <OtherPlayerHealth>().HealthSlider = healthSlider;
        Console.WriteLine(OtherPlayer.GetComponent <OtherPlayerHealth>().HealthSlider.maxValue);
    }
コード例 #7
0
ファイル: GamesController.cs プロジェクト: DaveRubin/ScorchAR
        public GameInfo Get(string id)
        {
            ServerGame game = gamesRepository.GetGame(id);

            game.LastUpdateTime = DateTime.Now;
            return(game);
        }
コード例 #8
0
        public override void PopulateGame(ServerGame game)
        {
            if (populateGameReentrant)
            {
                demoServer.PopulateGame(game);
                return;
            }

            try
            {
                string     s     = DownloadString(ref populateGameReentrant, "/game" + game.Time.ToString("yyyyMMddHHmmss", CultureInfo.InvariantCulture));
                ServerGame game2 = JsonSerializer.Deserialize <ServerGame>(s);
                game.Description = s.IndexOf("{\"error\":") == 0 ? s.Substring(9) : game2.Description;
                game.EndTime     = game2.EndTime;
                game.InProgress  = game2.InProgress;
                game.OnServer    = game2.OnServer;
                game.GameId      = game2.GameId;
                game.Events      = game2.Events;
                game.Players     = game2.Players;
            }
            catch (Exception e)
            {
                status = e.Message;
            }
        }
コード例 #9
0
        public void Update(ServerGame game, Lobby lobby)
        {
            foreach (BigShip ship in aiBigShips.ToArray())
            {
                if (ship.IsDestroyed)
                {
                    aiBigShips.Remove(ship);
                }
            }

            while (game.GameObjectCollection.GetMasterList().GetList <SmallShip>().Count < 20)
            {
                SmallShip.SmallShipFactory(game);
            }

            while (game.GameObjectCollection.GetMasterList().GetList <BigShip>().Count < 5)
            {
                aiBigShips.Add(BigShip.BigShipFactory(game));
            }

            ControllerFocusObject controllerFocusObject = game.GameObjectCollection.GetMasterList().GetList <ControllerFocusObject>()[0];

            foreach (Player player in lobby.Clients)
            {
                if (controllerFocusObject.GetFocus(player.Id) == null || controllerFocusObject.GetFocus(player.Id).IsDestroyed)
                {
                    BigShip playerShip = BigShip.BigShipFactory(game, player);
                    CircleBigShips(playerShip.Position);
                }
            }
        }
コード例 #10
0
 public CharacterInputProcessor(ServerPlayer player)
 {
     m_player = player;
     m_horMov = 0;
     m_verMov = 0;
     game = ServerGame.Inst;
 }
コード例 #11
0
ファイル: Tower.cs プロジェクト: BenjaminAlexander/BulletHell
        public static void TowerFactory(ServerGame game)
        {
            Tower t = new Tower(game);

            Tower.ServerInitialize(t,
                                   RandomUtils.RandomVector2(new Rectangle(0, 0, 5000, 5000)) + game.WorldSize / 2,
                                   (float)(RandomUtils.random.NextDouble() * Math.PI * 2));
            game.GameObjectCollection.Add(t);
        }
コード例 #12
0
        public int AddPlayer(string id, [FromBody] PlayerInfo playerInfo)
        {
            int        newPlayerIndex = -1;
            ServerGame game           = gamesRepository.GetGame(id);

            game.AddPlayer(playerInfo, ref newPlayerIndex);
            game.LastUpdateTime = DateTime.Now;
            return(newPlayerIndex);
        }
コード例 #13
0
        public static void SmallShipFactory(ServerGame game, Player player)
        {
            SmallShip ship = new SmallShip(game);

            SmallShip.ServerInitialize(ship, game.WorldSize / 2, new Vector2(0, 0), player.Controller, player.Controller);
            ControllerFocusObject controllerFocusObject = game.GameObjectCollection.GetMasterList().GetList <ControllerFocusObject>()[0];

            controllerFocusObject.SetFocus(player, ship);
            game.GameObjectCollection.Add(ship);
        }
コード例 #14
0
        public Task <string> Create(IEnumerable <QuestionCard> questionCards, IEnumerable <AnswerCard> answerCards)
        {
            var game = new ServerGame(
                GeneratorUniqueCode(new Random(), GameStore.Keys),
                new CardDeck(questionCards, answerCards));

            GameStore.Add(game.Code.ToUpper(), game);

            return(Task.FromResult(game.Code));
        }
コード例 #15
0
        public static void SmallShipFactory(ServerGame game)
        {
            Rectangle spawnRect = new Rectangle((int)(game.WorldSize.X - 1000), 0, 1000, (int)(game.WorldSize.Y));
            EvilAI    c         = new EvilAI(game);
            SmallShip ship3     = new SmallShip(game);

            SmallShip.ServerInitialize(ship3, Utils.RandomUtils.RandomVector2(spawnRect), new Vector2(0, 0), c, c);
            c.Focus = ship3;
            game.GameObjectCollection.Add(ship3);
        }
コード例 #16
0
        public PollResult UpdatePlayerStates(string id, [FromBody] PlayerState playerState)
        {
            ServerGame game       = gamesRepository.GetGame(id);
            PollResult pollResult = new PollResult();

            game.PlayerStates[playerState.Id].Update(playerState);
            game.LastUpdateTime         = DateTime.Now;
            pollResult.PlayerStates     = game.PlayerStates.Cast <PlayerState>().ToList();
            pollResult.RoundWinnerIndex = game.RoundWinnerIndex;
            return(pollResult);
        }
コード例 #17
0
ファイル: Test1.cs プロジェクト: DougBurbidge/Torn5
        ServerGame NewGame(int gameId, DateTime startTime, DateTime endTime, string description)
        {
            ServerGame game = new ServerGame();

            game.GameId      = 11;
            game.Time        = new DateTime(2018, 1, 1, 12, 0, 0);
            game.EndTime     = new DateTime(2018, 1, 1, 12, 12, 0);
            game.Description = "League";
            game.OnServer    = true;

            return(game);
        }
コード例 #18
0
        public ServerLogic(ServerGame game, Lobby lobby, Vector2 worldSize)
        {
            ControllerFocusObject controllerFocusObject = new ControllerFocusObject(game);

            ControllerFocusObject.ServerInitialize(controllerFocusObject, lobby.Clients.Count);
            game.GameObjectCollection.Add(controllerFocusObject);

            for (int j = 0; j < 4; j++)
            {
                Tower.TowerFactory(game);
            }
        }
コード例 #19
0
ファイル: Game.cs プロジェクト: Kuh4ku/Mercybot
 // Constructor
 internal Game(Account account)
 {
     Server    = new ServerGame();
     Character = new CharacterGame(account);
     Map       = new MapGame(account);
     Fight     = new FightGame(account);
     Managers  = new ManagersGame(account, Map);
     Chat      = new ChatGame(account);
     Npcs      = new NpcsGame(account);
     Storage   = new StorageGame(account);
     Exchange  = new ExchangeGame(account);
     Bid       = new BidGame(account);
 }
コード例 #20
0
        private Task StartRoundForPlayer(ServerGame game, ServerPlayer player)
        {
            var playerClient = hubContextFacade.GetClient(player.ConnectionId !);
            var newCards     = game.CardDeck.PickUpAnswers(10 - player.CardsInHand.Count);

            player.CardsInHand.AddRange(newCards);
            player.Status = PlayerStatus.PlayingAnswer;

            return(playerClient.RoundStarted(
                       currentRoundNumber: (game.RoundNumber ?? 0),
                       currentQuestion: game.CurrentQuestion !,
                       currentCardCzar: game.CurrentCardCzar !,
                       dealtCards: newCards));
        }
コード例 #21
0
ファイル: Client.cs プロジェクト: toadgee/phazex
 public bool Host()
 {
     _serverGame = new ServerGame(this.GameRules, this.networkSettings);
     this.networkSettings._Hostname = "127.0.0.1";
     if (_serverGame.Started())
     {
         _hosting = true;
     }
     else
     {
         _hosting = false;
     }
     return(_hosting);
 }
コード例 #22
0
    public void RelocatePlayer(ServerGame game)
    {
        if (OtherPlayer == null)
        {
            return;
        }

        var otherPlayer = game.GetOtherPlayer();

        //var controllerPlayer = game.GetControllerPlayer();
        //Console.WriteLine("Position");
        //Console.WriteLine(controllerPlayer.PositionX);
        Console.WriteLine(otherPlayer.PositionX);
        OtherPlayer.transform.position = new Vector3(otherPlayer.PositionX, otherPlayer.PositionY, otherPlayer.PositionZ);
    }
コード例 #23
0
        public void RemovePlayerFromGame(string id, int index)
        {
            ServerGame game = gamesRepository.GetGame(id);

            game.PlayerStates[index].IsActive = false;

            for (int i = 0; i < game.PlayerStates.Count; ++i)
            {
                if (game.PlayerStates[i].IsActive)
                {
                    return;
                }
            }
            //TODO write to db
            gamesRepository.RemoveGame(id);
        }
コード例 #24
0
        public override List <ServerGame> GetGames()
        {
            var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://" + _server);

            httpWebRequest.ContentType = "application/json";
            httpWebRequest.Method      = "POST";

            new StreamWriter(httpWebRequest.GetRequestStream()).Write("{ \"command\": \"list\" }");

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            var result       = new StreamReader(httpResponse.GetResponseStream()).ReadToEnd();

            List <ServerGame> games = new List <ServerGame>();

            using (JsonDocument document = JsonDocument.Parse(result))
            {
                JsonElement root     = document.RootElement;
                JsonElement gameList = root.GetProperty("gamelist");

                foreach (JsonElement jgame in gameList.EnumerateArray())
                {
                    var game = new ServerGame();
                    if (jgame.TryGetProperty("gamenum", out JsonElement gameNum))
                    {
                        game.GameId = gameNum.GetInt32();
                    }
                    if (jgame.TryGetProperty("gamename", out JsonElement gameName))
                    {
                        game.Description = gameName.GetString();
                    }
                    if (jgame.TryGetProperty("starttime", out JsonElement startTime))
                    {
                        game.Time = startTime.GetDateTime();
                    }
                    if (jgame.TryGetProperty("endtime", out JsonElement endTime))
                    {
                        game.EndTime = endTime.GetDateTime();
                    }
                    if (jgame.TryGetProperty("valid", out JsonElement valid))
                    {
                        game.OnServer = valid.GetBoolean();
                    }
                }
            }
            return(games);
        }
コード例 #25
0
    public void MovePlayer(ServerGame game)
    {
        if (OtherPlayer == null)
        {
            return;
        }

        var otherPlayer = game.GetOtherPlayer();

        if (otherPlayer.Movement == null)
        {
            return;
        }

        var movements = OtherPlayer.GetComponent <OtherPlayerMovement>();

        movements.ServerMovements.Enqueue(otherPlayer.Movement);
    }
コード例 #26
0
    public void ShootPlayer(ServerGame game)
    {
        if (OtherPlayer == null)
        {
            return;
        }

        var otherPlayer = game.GetOtherPlayer();

        if (!otherPlayer.IsShooting)
        {
            return;
        }

        var movements = OtherPlayer.GetComponentInChildren <OtherPlayerShooting>();

        movements.ShootingQueue.Enqueue(true);
    }
コード例 #27
0
ファイル: Test1.cs プロジェクト: DougBurbidge/Torn5
        void AddGame(League league)
        {
            var serverGame = new ServerGame();

            serverGame.League = league;
            serverGame.Time   = new DateTime(2018, 1, 1, 12, 0, 0);

            var teamDatas = new System.Collections.Generic.List <GameTeamData>();

            var teamData = new GameTeamData();

            teamData.GameTeam = new GameTeam();
            teamData.Players  = new System.Collections.Generic.List <ServerPlayer>();
            teamData.Players.Add(new ServerPlayer()
            {
                PlayerId = "001"
            });
            teamData.Players.Add(new ServerPlayer()
            {
                PlayerId = "002"
            });
            teamData.Players.Add(new ServerPlayer()
            {
                PlayerId = "003"
            });
            teamDatas.Add(teamData);

            teamData          = new GameTeamData();
            teamData.GameTeam = new GameTeam();
            teamData.Players  = new System.Collections.Generic.List <ServerPlayer>();
            teamData.Players.Add(new ServerPlayer()
            {
                PlayerId = "004"
            });
            teamData.Players.Add(new ServerPlayer()
            {
                PlayerId = "nonexistent"
            });
            teamDatas.Add(teamData);

            league.CommitGame(serverGame, teamDatas, GroupPlayersBy.Alias);
            league.AllGames[0].Teams[0].Colour = Colour.Red;
            league.AllGames[0].Teams[1].Colour = Colour.Green;
        }
コード例 #28
0
        private void spawBots(int botCount, ServerGame serverGame, int port)
        {
            try
            {
                for (int i = 0; i < botCount; ++i)
                {
                    BaseWcfClient          curBot      = null;
                    RulesInterpreterBridge rulesBridge = new RulesInterpreterBridge();
                    switch (serverGame)
                    {
                    case ServerGame.FiveCardDraw: curBot = new BaseWcfClient(new FiveGameDrawClient(new AiFiveCardDrawClient(new EmptyClientHelper(), rulesBridge))); break;

                    case ServerGame.OmahaHoldem: curBot = new BaseWcfClient(new OmahaHoldemClient(new AiClientHelper(new EmptyClientHelper(), rulesBridge))); break;

                    case ServerGame.SevenCardStud: curBot = new BaseWcfClient(new GameClient <SevenCardStudGame>(new AiClientHelper(new EmptyClientHelper(), rulesBridge))); break;

                    case ServerGame.TexasHoldem: curBot = new BaseWcfClient(new GameClient <TexasHoldem>(new AiClientHelper(new EmptyClientHelper(), rulesBridge))); break;
                    }
                    rulesBridge.Interpreter = (IRulesInterpreter)curBot.ConcreteClient;
                    Thread tempThread = new Thread(
                        delegate()
                    {
                        try
                        {
                            curBot.Initialize("localhost", port);
                            curBot.Connect();
                            curBot.Run();
                            curBot.Disconnect();
                        }
                        catch
                        {
                        }
                    });
                    tempThread.IsBackground = true;
                    tempThread.Priority     = ThreadPriority.BelowNormal;
                    tempThread.Name         = string.Format("AI thread {0}/{1}", port, i);
                    tempThread.Start();
                }
                Thread.Sleep(TimeSpan.FromSeconds(1 * botCount));
            }
            catch
            {
            }
        }
コード例 #29
0
        public GameTesting()
        {
            Game game = new ServerGame(2000, new List<Player>()
            {
                new Player(1,"test1"),
                new Player(2,"test2")
            }, new List<ServerUser>()
            {

            });
            string gameDataString = JsonConvert.SerializeObject(game.Serialize(), new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto });
            System.Console.WriteLine(gameDataString);
            Game resultGame = JsonConvert.DeserializeObject<Game>(gameDataString, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto });
            foreach(Block block in resultGame.map.blocks)
            {
                if(block is LandBlock)
                    Console.WriteLine((block as LandBlock).land.name);
            }
            Console.Read();
        }
コード例 #30
0
        public override List <ServerGame> GetGames()
        {
            List <ServerGame> games = new List <ServerGame>();

            DateTime now = DateTime.Now.TruncDateTime(new TimeSpan(0, 15, 0));

            for (int i = 0; i < 10; i++)
            {
                ServerGame game = new ServerGame
                {
                    GameId      = i,
                    Description = "Demo Game",
                    Time        = now.AddMinutes(i * 15 - 150),
                    OnServer    = true
                };
                game.EndTime = game.Time.AddMinutes(12);
                games.Add(game);
            }

            return(games);
        }
コード例 #31
0
        private async void StartServerAsync()
        {
            await Task.Run(() =>
            {
                IsServerRunning     = true;
                _queueTimer.Enabled = true;
                using (_serverGame = new ServerGame(_settings, SelectedModule))
                {
                    _serverGame.OnPlayerConnected    += PlayerConnected;
                    _serverGame.OnPlayerDisconnected += PlayerDisconnected;
                    _serverGame.Run();
                }
                StartStopServerButtonText = "Start Server";
                _queueTimer.Enabled       = false;
                IsServerRunning           = false;

                Application.Current.Dispatcher.Invoke(() =>
                {
                    Players.Clear();
                });
            });
        }
コード例 #32
0
        public void LoadGame(League league, ServerGame serverGame)
        {
            Items.Clear();

            if (serverGame.Players.Count == 0 && serverGame.Game != null)              // ServerGame is a fake, created from game; but ServerGame.Players is not filled in yet, so fill it in.
            {
                foreach (var player in serverGame.Game.AllPlayers())
                {
                    var serverPlayer = new ServerPlayer();
                    player.CopyTo(serverPlayer);

                    if (league != null)
                    {
                        LeaguePlayer leagueplayer = league.LeaguePlayer(player);
                        if (leagueplayer != null)
                        {
                            serverPlayer.Alias = leagueplayer.Name;
                        }
                    }

                    serverGame.Players.Add(serverPlayer);
                }
            }

            if (serverGame.Players != null)
            {
                foreach (var player in serverGame.Players)
                {
                    ListViewItem item = new ListViewItem(player.Pack, (int)player.Colour);
                    item.SubItems.Add(player.Alias);
                    item.SubItems.Add(player.Score.ToString(CultureInfo.CurrentCulture));
                    item.Tag    = player;
                    player.Item = item;
                    Items.Add(item);
                }
            }

            ListView.Sort();
        }
コード例 #33
0
ファイル: ServerGame.cs プロジェクト: rkdrnf/fortresswar
    void Awake()
    {
        Debug.LogError("[ServerGame] Awake");
            instance = this;
            m_teams = new CTeam[2] { new CTeam(), new CTeam() };
            RevivalLocation = new Vector2(0f, 3f);

            keyFocusManager = new KeyFocusManager(InputKeyFocus.PLAYER);
            mouseFocusManager = new MouseFocusManager(InputMouseFocus.PLAYER);

            int projectileLayer = LayerMask.NameToLayer("Projectile");
            Physics2D.IgnoreLayerCollision(projectileLayer, projectileLayer);
            Physics2D.IgnoreLayerCollision(projectileLayer, LayerMask.NameToLayer("Particle"));
    }