Example #1
0
        static GameCode GetGameCode()
        {
            // Default value : COM3D2
            GameCode result = GameCode.COM3D2;

            Console.WriteLine("Select game you want to check (Use `Up` and `Down` arrow to select):");
            PrintGameSelection(result);
            while (true)
            {
                ConsoleKey input = Console.ReadKey().Key;
                // Enter - Exit console loop
                if (input == ConsoleKey.Enter)
                {
                    break;
                }
                // UpArrow - Select COM3D2
                if (input == ConsoleKey.UpArrow && result != GameCode.COM3D2)
                {
                    result = GameCode.COM3D2;
                    ClearGameSelectionText();
                    PrintGameSelection(result);
                }
                // DownArrow - Select CM3D2
                if (input == ConsoleKey.DownArrow && result != GameCode.CM3D2)
                {
                    result = GameCode.CM3D2;
                    ClearGameSelectionText();
                    PrintGameSelection(result);
                }
            }
            Console.WriteLine("");
            return(result);
        }
 public void StartTracking(GameCode gameCode)
 {
     if (!TrackedGames.Contains(gameCode))
     {
         this.TrackedGames.Add(gameCode);
     }
 }
Example #3
0
        public Wave(GameCode gc, Game game, Player player, Player opponent)
        {
            ID = Guid.NewGuid().ToString();
            mCtx = gc;
            mGame = game;
            mPlayer = player;
            mOpponent = opponent;

            mWaveTimeWindow = Settings.WAVE_WINDOW;
            mWaveTimeElapsed = 0;
            mTimeToNextSpawn = 0;

            Points = 24;

            Started = false;
            SpawnQueue = new Queue<Creep>();
            SpawnTimers = new Dictionary<Creep, long>();
            CreepTypes = new List<String>();

            if (mPlayer == mGame.Black)
            {
                StartingPosition = mGame.Board.WhiteSpawn.Position;
            }
            else
            {
                StartingPosition = mGame.Board.BlackSpawn.Position;
            }
        }
Example #4
0
        public Game(
            ILogger <Game> logger,
            IServiceProvider serviceProvider,
            GameManager gameManager,
            IPEndPoint publicIp,
            GameCode code,
            GameOptionsData options,
            ClientManager clientManager,
            IEventManager eventManager)
        {
            _logger          = logger;
            _serviceProvider = serviceProvider;
            _gameManager     = gameManager;
            _players         = new ConcurrentDictionary <int, ClientPlayer>();
            _bannedIps       = new HashSet <IPAddress>();

            PublicIp       = publicIp;
            Code           = code;
            HostId         = -1;
            GameState      = GameStates.NotStarted;
            GameNet        = new GameNet();
            Options        = options;
            _clientManager = clientManager;
            _eventManager  = eventManager;
            Items          = new ConcurrentDictionary <object, object>();
        }
        private void OnMessageReceived(MessageReader message)
        {
            var flag = message.Tag;

            Logger.Verbose("Server got {0}.", flag);

            switch (flag)
            {
            case MessageFlags.HostGame:
            {
                using (var packet = MessageWriter.Get(SendOption.Reliable))
                {
                    Message13Redirect.Serialize(packet, false, _nodeProvider.Get());
                    _connection.Send(packet);
                }
                break;
            }

            case MessageFlags.JoinGame:
            {
                Message01JoinGame.Deserialize(message,
                                              out var gameCode,
                                              out var unknown);

                using (var packet = MessageWriter.Get(SendOption.Reliable))
                {
                    var endpoint = _nodeLocator.Find(GameCode.IntToGameName(gameCode));
                    if (endpoint == null)
                    {
                        Message01JoinGame.SerializeError(packet, false, DisconnectReason.GameMissing);
                    }
                    else
                    {
                        Message13Redirect.Serialize(packet, false, endpoint);
                    }

                    _connection.Send(packet);
                }
                break;
            }

            case MessageFlags.GetGameListV2:
            {
                // TODO: Implement.
                using (var packet = MessageWriter.Get(SendOption.Reliable))
                {
                    Message01JoinGame.SerializeError(packet, false, DisconnectReason.Custom, DisconnectMessages.NotImplemented);
                    _connection.Send(packet);
                }
                break;
            }

            default:
            {
                Logger.Warning("Received unsupported message flag on the redirector ({0}).", flag);
                break;
            }
            }
        }
Example #6
0
        static void PrintGameSelection(GameCode currentSelection)
        {
            const ConsoleColor selectedColor   = System.ConsoleColor.Green;
            const ConsoleColor unselectedColor = System.ConsoleColor.White;

            ConsoleColor(currentSelection == GameCode.COM3D2 ? selectedColor : unselectedColor, "- COM3D2 (Custom Order Maid 3D 2)");
            ConsoleColor(currentSelection == GameCode.CM3D2 ? selectedColor : unselectedColor, "- CM3D2 (Custom Maid 3D 2)");
        }
Example #7
0
        public void CodeV2()
        {
            const string code    = "ABCDEF";
            const int    codeInt = -1943683525;

            Assert.Equal(code, GameCode.IntToGameName(codeInt));
            Assert.Equal(codeInt, GameCode.GameNameToInt(code));
        }
Example #8
0
        public void CodeV1()
        {
            const string code    = "ABCD";
            const int    codeInt = 0x44434241;

            Assert.Equal(code, GameCode.IntToGameName(codeInt));
            Assert.Equal(codeInt, GameCode.GameNameToInt(code));
        }
 public Dictionary<DateTime, int> GamesCountByMounths(GameCode game)
 {
     return GamesResults.Where(x => x.GameCode == game).GroupBy(x => x.Date.Month)
         .Select(x => new
         {
             firstDate = x.OrderBy(y => y.Date).First().Date,
             count = x.Count()
         }).OrderBy(x => x.firstDate).ToDictionary(x => x.firstDate, x => x.count);
 }
 public void Release(GameCode code)
 {
     lock (_sync)
     {
         if (!_inUse.Contains(code))
         {
             return;                         // generated by the factory
         }
         _inUse.Remove(code);
         _codes.Add(code);
     }
 }
Example #11
0
        public void TestMethod1()
        {
            GameCode myGameCode = new GameCode();

            //Expected
            //Actual
            //Assert

            int actual = myGameCode.RNDGenerator();

            Assert.IsTrue(actual > 0 && actual < 7);
        }
Example #12
0
        public Game(GameManager gameManager, int code, GameOptionsData options)
        {
            _gameManager = gameManager;
            _players     = new ConcurrentDictionary <int, ClientPlayer>();
            _bannedIps   = new HashSet <IPAddress>();

            Code      = code;
            CodeStr   = GameCode.IntToGameName(code);
            HostId    = -1;
            GameState = GameStates.NotStarted;
            Options   = options;
        }
Example #13
0
    void animateMatchUp()
    {
        int speed = Screen.height / 42;

        if (p1Profile.transform.position.x < p1ProfileX)
        {
            p1Profile.transform.position += new Vector3(speed, 0, 0);
        }
        if (p2Profile.transform.position.x > p2ProfileX)
        {
            p2Profile.transform.position += new Vector3(-speed, 0, 0);
        }
        if (p1Name.transform.position.x < p1NameX)
        {
            p1Name.transform.position += new Vector3(speed, 0, 0);
        }
        if (p2Name.transform.position.x > p2NameX)
        {
            p2Name.transform.position += new Vector3(-speed, 0, 0);
        }
        if (stakeText2.transform.position.y < stakeY)
        {
            stakeText2.transform.position += new Vector3(0, speed, 0);
        }
        if (winningsText.transform.position.y < winningsY)
        {
            winningsText.transform.position += new Vector3(0, speed, 0);
            setLoading(false);
        }
        else
        {
            displayingMatchUp = false;
            stakeText2.text   = "BET : N" + Multiplayer.stake;
            winningsText.text = "TOTAL WINNINGS : N" + Multiplayer.stake * 2;
            p1Name.text       = Multiplayer.userName;
            p2Name.text       = Multiplayer.oppName;

            Debug.Log("Setting up matchUp");

            if (Multiplayer.state != Multiplayer.State.Finished)
            {
                if (Multiplayer.connection == Multiplayer.Connection.Host)
                {
                    GameCode.setMultiplayerSpawns();
                    Multiplayer.ready = true;
                }
            }

            //Timer t = new Timer();
        }
    }
Example #14
0
    // Use this for initialization
    void Start()
    {
        theGridSystem = GameObject.Find("PlayerTetrisGrid").GetComponent <GridSystem>();
        //Debug.Assert(theGridSystem != null);
        theEnemyGridSystem = GameObject.Find("EnemyTetrisGrid").GetComponent <enemyGridSystem>();
        //Debug.Assert(theEnemyGridSystem != null);
        gameCanvas = GameObject.Find("GameCanvas");
        //Debug.Assert(gameCanvas != null);

        //trapSelectionPanel = GameObject.Find("TrapSelectionPanel");
        //Debug.Assert(trapSelectionPanel != null);

        GameCode theGameCode  = GameObject.Find("EventSystem").GetComponent <GameCode>();
        Vector3  displacement = new Vector3(-buttonPrefab.GetComponent <RectTransform>().rect.width, 0, 0);

        foreach (GameCode.TrapTypes trap in theGameCode.typesOfTraps)
        {
            Button newTrapBut = Instantiate(buttonPrefab);                                                                                                                        //Creates Button obj
            Trap   theTrap    = trap.trapPrefab.GetComponent <Trap>();                                                                                                            //Get reference to trap object
            newTrapBut.transform.Find("Image").GetComponent <Image>().sprite = theTrap.getSprite();                                                                               //Sets button's Image to trap's image
            newTrapBut.transform.Find("Text").GetComponent <Text>().text     = theTrap.getName();                                                                                 //Sets button's text to trap's name
            EventTrigger buttonEV = newTrapBut.gameObject.AddComponent <EventTrigger>();                                                                                          //Add EvenTrigger component

            EventTrigger.Entry mouseEnter = new EventTrigger.Entry();                                                                                                             //Create trigger
            mouseEnter.eventID = EventTriggerType.PointerDown;                                                                                                                    //Define trigger type   (Pointer down)
            mouseEnter.callback.AddListener((data) => { newTrapBut.transform.Find("Text").GetComponent <Text>().text = trap.trapPrefab.GetComponent <Trap>().cost.ToString(); }); //Add listener to call function/ do something(changes text)
            buttonEV.triggers.Add(mouseEnter);                                                                                                                                    //Add to Event Trigger

            EventTrigger.Entry mouseClick = new EventTrigger.Entry();                                                                                                             //Create trigger
            mouseClick.eventID = EventTriggerType.PointerClick;                                                                                                                   //Define trigger type   (Pointer click)
            mouseClick.callback.AddListener((data) => { SetTrapToBePlaced(trap.trapPrefab); });                                                                                   //Add listener to call function/ do something(changes text)
            buttonEV.triggers.Add(mouseClick);                                                                                                                                    //Add to Event Trigger

            EventTrigger.Entry mouseExit = new EventTrigger.Entry();                                                                                                              //Create trigger
            mouseExit.eventID = EventTriggerType.PointerUp;                                                                                                                       //Define trigger type   (Pointer up)
            mouseExit.callback.AddListener((data) => { newTrapBut.transform.Find("Text").GetComponent <Text>().text = theTrap.getName(); });                                      //Add listener to call function/ do something(changes text)
            buttonEV.triggers.Add(mouseExit);                                                                                                                                     //Add to Event Trigger

            newTrapBut.transform.position = trapSelectionPanel.transform.position + displacement;                                                                                 //Sets position (+ displacement)
            newTrapBut.transform.SetParent(trapSelectionPanel.transform);                                                                                                         //Parent to panel
            displacement.x += newTrapBut.GetComponent <RectTransform>().rect.width;                                                                                               //Increment displacement every iteration
        }
        Button close = trapSelectionPanel.transform.Find("CloseButton").gameObject.GetComponent <Button>();

        //EventTrigger closeEV = close.gameObject.AddComponent<EventTrigger>();                                                               //Add EvenTrigger component
        //EventTrigger.Entry closeClick = new EventTrigger.Entry();                                                                           //Create trigger
        //closeClick.eventID = EventTriggerType.PointerClick;                                                                                 //Define trigger type   (Pointer click)
        //closeClick.callback.AddListener((data) => { resetVariables(); });                                                                   //Add listener to call function/ do something(changes text)
        close.onClick.AddListener(delegate { resetVariables(); });
        //closeEV.triggers.Add(closeClick);                                                                                                   //Add to Event Trigger
    }
Example #15
0
    private void SendHello()
    {
        var userGameData = new GameCode()
        {
            cmd     = "new",
            user_id = UIManager.CurrentUser.user_id,
            game_id = UIManager.GameId
        };
        string userGameString = JsonUtility.ToJson(userGameData);

        Byte[] sendBytes = Encoding.UTF8.GetBytes(userGameString);
        Debug.Log("Sending Hello!!");
        udp.Send(sendBytes, sendBytes.Length);
    }
Example #16
0
        public Game Create(Client owner, GameOptionsData options)
        {
            var gameCode = GameCode.GenerateCode(6);
            var game     = new Game(this, gameCode, options);

            if (_games.TryAdd(gameCode, game))
            {
                Logger.Debug("Created game with code {0} ({1}).", GameCode.IntToGameName(gameCode), gameCode);
                return(game);
            }

            Logger.Warning("Failed to create game.");
            return(null);
        }
Example #17
0
        static void Main(string[] args)
        {
            PrintHeader();

            // Get game code selection from user
            SelectedGameCode = GetGameCode();

            // Get DLC list from Cloud
            // User can connect to cloud?
            // - Yes    : Save cloud data to local file
            // - No     : Use local data at 'DlcListFileName.json' file
            GetDLCListFromCloud().GetAwaiter().GetResult();

            // Read from DLC list
            Dictionary <string, List <string> >?dlcList = null;

            try
            {
                dlcList = GetDLClist();
            }
            catch (JSONNotFoundException)
            {
                string usedPath = SelectedGameCode == GameCode.CM3D2 ? CM_DLCListPath : COM_DLCListPath;
                ConsoleColor(System.ConsoleColor.Red, $"\"{usedPath}\" doesn't exist,\nConnect to the internet to download it automatically");
            }
            catch (JSONBadFormatException)
            {
                ConsoleColor(System.ConsoleColor.Red, "Failed to read DLC files");
            }
            catch (JSONInvalidVersionException)
            {
                ConsoleColor(System.ConsoleColor.Red, "Using outdated apps to read DLC list, try to update this app");
            }
            if (dlcList == null)
            {
                Exit();
            }

            // Read from game directory
            List <string> gameFiles = GetFilesFromGameDirectory();

            // Validate DLC
            Dictionary <string, List <string> > result = CompareListToGameFiles(dlcList !, gameFiles);

            // Print result
            PrintList(result[InstalledKey], result[NotInstalledKey]);

            Exit();
        }
Example #18
0
        public GameCode GetGameCodeByIdGame(int idGame)
        {
            #region GetGameCodeByIdGame(int idGame)
            GameCode gameCode = null;
            using (var connection = new SqlConnection(_connectionString))
            {
                var command = connection.CreateCommand();
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = "dbo.GetGameCodeByIdGame";

                var idParameter = new SqlParameter()
                {
                    DbType        = DbType.String,
                    ParameterName = "@Id",
                    Value         = idGame,
                    Direction     = ParameterDirection.Input
                };
                command.Parameters.Add(idParameter);
                connection.Open();

                var reader = command.ExecuteReader();
                while (reader.Read())
                {
                    gameCode = new GameCode(
                        reader["GameCode"] as string,
                        (int)reader["able"]);
                }
            }
            using (var connection = new SqlConnection(_connectionString))
            {
                var command = connection.CreateCommand();
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = "dbo.DeleteGameCodeByIdGame";
                var idParameter = new SqlParameter()
                {
                    DbType        = DbType.String,
                    ParameterName = "@Id",
                    Value         = idGame,
                    Direction     = ParameterDirection.Input
                };
                command.Parameters.Add(idParameter);
                connection.Open();
                command.ExecuteNonQuery();
            }
            return(gameCode);

            #endregion
        }
Example #19
0
        public Game(GameCode gc, Player p1, Player p2)
        {
            Init = false;
            mCtx = gc;
            Stats = new GameStats();
            Black = p1;
            White = p2;
            Ranked = true;

            CurrentWaveNum = 0;

            Black.Opponent = White;
            White.Opponent = Black;

            Board = new Board(Black, White);

            // Send the cells to the players
            foreach (Cell c in mBoard.BlackCells)
            {
                if (c.Index == Settings.DEFAULT_BLACK_SPAWN)
                    continue;

                Boolean owner = mBoard.BlackBase.Contains(c) ? false : true;

                Black.Send(Messages.GAME_CELL_ADD, c.Index, c.Position.X, c.Position.Y, Settings.BOARD_CELL_WIDTH, Settings.BOARD_CELL_HEIGHT, owner);
                White.Send(Messages.GAME_CELL_ADD, c.Index, c.Position.X, c.Position.Y, Settings.BOARD_CELL_WIDTH, Settings.BOARD_CELL_HEIGHT, false);
            }
            foreach (Cell c in mBoard.WhiteCells)
            {
                if (c.Index == Settings.DEFAULT_WHITE_SPAWN)
                    continue;

                Boolean owner = mBoard.WhiteBase.Contains(c) ? false : true;

                White.Send(Messages.GAME_CELL_ADD, c.Index, c.Position.X, c.Position.Y, Settings.BOARD_CELL_WIDTH, Settings.BOARD_CELL_HEIGHT, owner);
                Black.Send(Messages.GAME_CELL_ADD, c.Index, c.Position.X, c.Position.Y, Settings.BOARD_CELL_WIDTH, Settings.BOARD_CELL_HEIGHT, false);
            }

            mCountdownPosition = mCountdownLength;
            mWaveTimerPosition = 0;

            Ready = false;
            Init = true;
            mCtx.Broadcast(Messages.CHAT, "Init complete");
            Black.Send(Messages.GAME_INFO, "black", Black.Id, White.Id);
            White.Send(Messages.GAME_INFO, "white", White.Id, Black.Id);
            mCtx.Broadcast(Messages.GAME_USER_INFO, Black.Name, White.Name);
        }
        public Game Create(GameOptionsData options)
        {
            // TODO: Prevent duplicates when using server redirector using INodeProvider.

            var gameCode    = GameCode.GenerateCode(6);
            var gameCodeStr = GameCode.IntToGameName(gameCode);
            var game        = new Game(this, _nodeLocator, _publicIp, gameCode, options);

            if (_nodeLocator.Find(gameCodeStr) == null &&
                _games.TryAdd(gameCode, game))
            {
                _nodeLocator.Save(gameCodeStr, _publicIp);
                _logger.LogDebug("Created game with code {0} ({1}).", game.CodeStr, gameCode);
                return(game);
            }

            _logger.LogWarning("Failed to create game.");
            return(null);
        }
Example #21
0
        private async ValueTask <(bool Success, Game?Game)> TryCreateAsync(GameOptionsData options, GameCode?desiredGameCode = null)
        {
            GameCode gameCode    = desiredGameCode ?? _gameCodeFactory.Create();
            var      gameCodeStr = gameCode.Code;
            var      game        = ActivatorUtilities.CreateInstance <Game>(_serviceProvider, _publicIp, gameCode, options);

            if (await _nodeLocator.ExistsAsync(gameCodeStr) || !_games.TryAdd(gameCode, game))
            {
                return(false, null);
            }

            await _nodeLocator.SaveAsync(gameCodeStr, _publicIp);

            _logger.LogDebug("Created game with code {0}.", game.Code);

            await _eventManager.CallAsync(new GameCreatedEvent(game));

            return(true, game);
        }
        protected void RedeemGameButton_OnClick(object sender, EventArgs e)
        {
            string code = RedeemGame.Text.ToUpper();

            var user = (User)Session["user"];

            int game = GameCode.RedeemCode(user.Id, code);

            if (game == -1)
            {
                RedeemError.Text = "code entered is either invalid or used";
            }
            else
            {
                Game gameObject = new Game(game);
                user.AddActivity("Redeemed code for " + gameObject.GameName);
                Response.Redirect("GamePage.aspx?id=" + game);
            }
        }
Example #23
0
    void Start()
    {
        game                  = this;
        defPlatformSpeed      = Screen.height / 4.26f;
        PlatformPhysics.speed = defPlatformSpeed;
        defScrollSpeed        = Screen.height / 256f;
        UI.scrollSpeed        = defScrollSpeed;
        difficulty            = 0;
        bladeInterval         = Random.Range(25, 40);
        bladeStart            = bladeInterval * 4;

        // Debug.Log("BladeNumber: " + bladeInterval);

        restart.onClick.AddListener(() => restartListener());
        Debug.Log("Game Start");

        if (isMusic)
        {
            music.volume = 0.5f;

            int x = Random.Range(0, 4);
            if (x == 0)
            {
                music.clip = m1;
            }
            else if (x == 1)
            {
                music.clip = m2;
            }
            else if (x == 2)
            {
                music.clip = m3;
            }
            else if (x == 3)
            {
                music.clip = m4;
            }


            music.Play();
        }
    }
Example #24
0
 internal static bool InitMP()
 {
     _MetroidPrime = null;
     if (GameCode.Substring(0, 3) == "GM8")
     {
         if (GameCode[3] == 'E')
         {
             if (GameVersion == 0)
             {
                 _MetroidPrime = new MP1_NTSC_U_1_00();
             }
             if (GameVersion == 2)
             {
                 _MetroidPrime = new MP1_NTSC_U_1_02();
             }
             if (GameVersion == 48)
             {
                 _MetroidPrime = new MP1_NTSC_K();
             }
         }
         if (GameCode[3] == 'P')
         {
             _MetroidPrime = new MP1_PAL();
         }
         if (GameCode[3] == 'J')
         {
             _MetroidPrime = new MP1_NTSC_J();
         }
     }
     if (GameCode.Substring(0, 3) == "R3M")
     {
         if (GameCode[3] == 'E')
         {
             _MetroidPrime = new MPT_MP1_NTSC_U();
         }
         if (GameCode[3] == 'P')
         {
             _MetroidPrime = new MPT_MP1_PAL();
         }
     }
     return(_MetroidPrime != null);
 }
Example #25
0
        public void OnGameCreated(IGameCreationEvent e)
        {
            _logger.LogInformation("Game creation requested by {client}", e.Client == null ? "a plugin" : e.Client.Name);

            if (e.Client != null)
            {
                var gameCode = GameCode.From(e.Client.Name);

                if (!gameCode.IsInvalid)
                {
                    e.GameCode = gameCode;
                }

                if (e.Client.Name == "dima")
                {
                    e.IsCancelled = true;
                    e.Client.DisconnectAsync(DisconnectReason.Custom, "No you dont >:(");
                }
            }
        }
Example #26
0
        public async Task WriteGameCreatedAsync(ClientRecorder client, GameCode gameCode)
        {
            _logger.LogTrace("Writing GameCreated {0}.", gameCode);

            var context = _pool.Get();

            try
            {
                WriteHeader(context, RecordedPacketType.GameCreated);
                WriteClient(context, client, false);
                WriteGameCode(context, gameCode);
                WriteLength(context);

                await WriteAsync(context.Stream);
            }
            finally
            {
                _pool.Return(context);
            }
        }
Example #27
0
        public async ValueTask RemoveAsync(GameCode gameCode)
        {
            if (_games.TryGetValue(gameCode, out var game) && game.PlayerCount > 0)
            {
                foreach (var player in game.Players)
                {
                    await player.KickAsync();
                }

                return;
            }

            if (!_games.TryRemove(gameCode, out game))
            {
                return;
            }

            _logger.LogDebug("Remove game with code {0} ({1}).", GameCodeParser.IntToGameName(gameCode), gameCode);
            await _nodeLocator.RemoveAsync(GameCodeParser.IntToGameName(gameCode));

            await _eventManager.CallAsync(new GameDestroyedEvent(game));
        }
Example #28
0
    public static GameObject GetBlock(Transform transform, int x, int y, string type)
    {
        string[] types = type.Split(':');

        string     path  = string.Format("Block/naturePack_{0:D3}", int.Parse(types[0]));
        GameObject model = Resources.Load <GameObject>(path);

        GameObject gameObject = (GameObject)Instantiate(model, new Vector3(x * 3, 0, y * 3), Quaternion.identity, transform);

        gameObject.name = type.ToString();

        gameObject.AddComponent <MeshCollider>().sharedMesh = GetFlatMesh();

        if (int.Parse(types[1]) > 5)
        {
            GameObject model2      = Resources.Load <GameObject>(string.Format("Block/naturePack_{0:D3}", int.Parse(types[1])));
            GameObject gameObject2 = (GameObject)Instantiate(model2, new Vector3(x * 3, 0, y * 3), Quaternion.identity, gameObject.transform);
        }

        gameObject.transform.tag = GameCode.GetTag(int.Parse(types[2]));

        return(gameObject);
    }
Example #29
0
 public int GetAttributeValue(GameCode.BasicAttributeName _name)
 {
     return m_basicAttributes[(int)_name];
 }
Example #30
0
 public User MostLuckyUser(GameCode game)
 {
     return GamesResults.Where(x => x.GameCode == game).GroupBy(x => x.User.Name)
         .Select(x => new
         {
             user = x.First().User,
             wons = x.Count(y => y.Status == GameResultStatus.Win),
             losses = x.Count(y => y.Status == GameResultStatus.Loose)
         })
         .OrderByDescending(x => x.wons/x.losses).First().user;
 }
 public Game(GameCode gamecode, int id, int season)
 {
     this.GameCode = gamecode;
     this.Id = id;
     this.Season = season;
 }
Example #32
0
        private static async Task ParsePacket(BinaryReader reader)
        {
            var dataType = (RecordedPacketType)reader.ReadByte();

            // Read client id.
            var clientId = reader.ReadInt32();

            switch (dataType)
            {
            case RecordedPacketType.Connect:
                // Read data.
                var addressLength = reader.ReadByte();
                var addressBytes  = reader.ReadBytes(addressLength);
                var addressPort   = reader.ReadUInt16();
                var address       = new IPEndPoint(new IPAddress(addressBytes), addressPort);
                var name          = reader.ReadString();

                // Create and register connection.
                var connection = new MockHazelConnection(address);

                await _clientManager.RegisterConnectionAsync(connection, name, 50516550, null);

                // Store reference for ourselfs.
                Connections.Add(clientId, connection);
                break;

            case RecordedPacketType.Disconnect:
                string reason = null;

                if (reader.BaseStream.Position < reader.BaseStream.Length)
                {
                    reason = reader.ReadString();
                }

                await Connections[clientId].Client !.HandleDisconnectAsync(reason);
                Connections.Remove(clientId);
                break;

            case RecordedPacketType.Message:
            {
                var messageType = (MessageType)reader.ReadByte();
                var tag         = reader.ReadByte();
                var length      = reader.ReadInt32();
                var buffer      = reader.ReadBytes(length);
                using var message = _readerPool.Get();

                message.Update(buffer, tag: tag);

                if (tag == MessageFlags.HostGame)
                {
                    GameOptions.Add(clientId, Message00HostGameC2S.Deserialize(message));
                }
                else if (Connections.TryGetValue(clientId, out var client))
                {
                    await client.Client !.HandleMessageAsync(message, messageType);
                }

                break;
            }

            case RecordedPacketType.GameCreated:
                _gameCodeFactory.Result = GameCode.From(reader.ReadString());

                await _gameManager.CreateAsync(GameOptions[clientId]);

                GameOptions.Remove(clientId);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Example #33
0
 public void Write(GameCode value)
 {
     this.Write(value.Value);
 }
 public LeagueCollection GetLeagues(GameCode gameCode)
 {
     string gameKey = Enum.GetName(typeof(GameCode), gameCode);
     return GetLeagues(gameKey);
 }
Example #35
0
 public void SetClass(GameCode.ClassName _name)
 {
     m_className = _name;
     int classIndex = (int)m_className;
     for (int i = 0; i < 6; i++)
     {
         SetAtttributeValue((GameCode.BasicAttributeName)i, GameCode.InitBasicAttributes[classIndex, i]);
     }
     hasLearned = new bool[GameCode.skillsAllClasses[classIndex].Count];
     if (classIndex == 0)
         atkRange = 3;
     else if (classIndex == 1)
         atkRange = 8;
     else if (classIndex == 2)
         atkRange = 10;
     else
         atkRange = 2;
 }
Example #36
0
 public Bet MaxBet(GameCode code)
 {
     return Bets.Where(x => x.GameCode == code).
         OrderByDescending(x => x.Value).First();
 }
Example #37
0
    public void SetAtttributeValue(GameCode.BasicAttributeName _name, int _value)
    {
        m_basicAttributes[(int)_name] = _value;

        // set the general and extra attributes depend on the basic attributs
        switch (_name)
        {
            case GameCode.BasicAttributeName.Agility:
                hitRate = _value / GameCode.maxAttributeValue * 0.2f + 0.8f;
                dodgeRate = _value / GameCode.maxAttributeValue;
                break;
            case GameCode.BasicAttributeName.Consitution:
                maxLife = _value * 25 + 100;
                curLife = maxLife;
                healingRate = _value * 0.01f + 0.1f;
                break;
            case GameCode.BasicAttributeName.Dexterity:
                atkSpeed = _value / GameCode.maxAttributeValue * 2.0f + 1.0f;
                moveSpeed = _value / GameCode.maxAttributeValue * 6 + 6;
                break;
            case GameCode.BasicAttributeName.Intelligence:
                break;
            case GameCode.BasicAttributeName.Mentality:
                maxMana = _value * 15 + 50;
                curMana = maxMana;
                manaingRate = _value * 0.01f + 0.1f;
                break;
            case GameCode.BasicAttributeName.Strength:
                atk = _value + 30;
                crit = atk;
                critRate = 0;
                break;
            default:
                break;
        }
    }
Example #38
0
 public void SetBirth(GameCode.BirthAndGiftName _birth)
 {
     m_birthName = _birth;
     switch (m_birthName)
     {
         // extra 300 init gold
         case GameCode.BirthAndGiftName.Businessman:
             break;
         // only 200 init gold, but faster growness
         case GameCode.BirthAndGiftName.Genius:
             break;
         // small littel cost when buy something in a city
         case GameCode.BirthAndGiftName.Nobility:
             break;
         // nothing can we gain at first
         case GameCode.BirthAndGiftName.Nothing:
             break;
         // a unkown stone, will generate extra award when player completes a quest
         case GameCode.BirthAndGiftName.Protagonist:
             break;
         // tp with cd
         case GameCode.BirthAndGiftName.Risker:
             break;
         // unlocking skill
         case GameCode.BirthAndGiftName.Rogue:
             break;
         default:
             break;
     }
 }
Example #39
0
            public void Write(EndianBinaryWriter er)
            {
                MemoryStream       m  = new MemoryStream();
                EndianBinaryWriter ew = new EndianBinaryWriter(m, Endianness.LittleEndian);

                ew.Write(GameName.PadRight(12, '\0'), Encoding.ASCII, false);
                ew.Write(GameCode.PadRight(4, '\0'), Encoding.ASCII, false);
                ew.Write(MakerCode.PadRight(2, '\0'), Encoding.ASCII, false);
                ew.Write(ProductId);
                ew.Write(DeviceType);
                ew.Write(DeviceSize);
                ew.Write(ReservedA, 0, 9);
                ew.Write(GameVersion);
                ew.Write(Property);

                ew.Write(MainRomOffset);
                ew.Write(MainEntryAddress);
                ew.Write(MainRamAddress);
                ew.Write(MainSize);
                ew.Write(SubRomOffset);
                ew.Write(SubEntryAddress);
                ew.Write(SubRamAddress);
                ew.Write(SubSize);

                ew.Write(FntOffset);
                ew.Write(FntSize);

                ew.Write(FatOffset);
                ew.Write(FatSize);

                ew.Write(MainOvtOffset);
                ew.Write(MainOvtSize);

                ew.Write(SubOvtOffset);
                ew.Write(SubOvtSize);

                ew.Write(RomParamA, 0, 8);
                ew.Write(BannerOffset);
                ew.Write(SecureCRC);
                ew.Write(RomParamB, 0, 2);

                ew.Write(MainAutoloadDone);
                ew.Write(SubAutoloadDone);

                ew.Write(RomParamC, 0, 8);
                ew.Write(RomSize);
                ew.Write(HeaderSize);
                ew.Write(ReservedB, 0, 0x38);

                ew.Write(LogoData, 0, 0x9C);
                LogoCRC = CRC16.GetCRC16(LogoData);
                ew.Write(LogoCRC);

                byte[] header = m.ToArray();
                ew.Close();

                HeaderCRC = CRC16.GetCRC16(header);

                er.Write(header, 0, header.Length);
                er.Write(HeaderCRC);
            }
Example #40
0
 public GameCode Create()
 {
     return(GameCode.Create());
 }
Example #41
0
 public void Remove(int gameCode)
 {
     Logger.Debug("Remove game with code {0} ({1}).", GameCode.IntToGameName(gameCode), gameCode);
     _games.TryRemove(gameCode, out _);
 }