Example #1
0
    public void DecodeMessage(string s)
    {
        if (_cl != null)
        {
            if (s.Length > 5)
            {
                PlayerCommandsData playerData = JsonConvert.DeserializeObject <PlayerCommandsData>(s);
                if (playerData.commands != null)
                {
                    for (int i = 0; i < playerData.commands.Count; i++)
                    {
                        int    type     = int.Parse(playerData.commands[i][0].ToString());
                        string lCommand = playerData.commands[i].Remove(0, 1);
                        print(playerData.commands[i]);
                        switch (type)
                        {
                        case 0:
                            AttackCommand c = JsonConvert.DeserializeObject <AttackCommand>(lCommand);
                            ServiceLocator.GetService <CommandManager>().allCommands.Add(c);
                            break;

                        case 1:
                            BuildCommand bc = JsonConvert.DeserializeObject <BuildCommand>(lCommand);
                            ServiceLocator.GetService <CommandManager>().allCommands.Add(bc);
                            print(ServiceLocator.GetService <CommandManager>().allCommands.Count);

                            break;

                        case 2:
                            HireCommand hc = JsonConvert.DeserializeObject <HireCommand>(lCommand);
                            ServiceLocator.GetService <CommandManager>().allCommands.Add(hc);

                            break;

                        case 3:
                            PauseCommand pc = JsonConvert.DeserializeObject <PauseCommand>(lCommand);
                            ServiceLocator.GetService <CommandManager>().allCommands.Add(pc);

                            break;

                        case 4:
                            MoveCommand mc = JsonConvert.DeserializeObject <MoveCommand>(lCommand);
                            ServiceLocator.GetService <CommandManager>().allCommands.Add(mc);

                            break;

                        case 5:
                            EmptyCommand ec = JsonConvert.DeserializeObject <EmptyCommand>(lCommand);
                            ServiceLocator.GetService <CommandManager>().allCommands.Add(ec);
                            break;
                        }
                        //Command c = (Command)JsonConvert.DeserializeObject(playerData.commands[i],
                        //    CommandManager.commandTypes[type].GetType());
                    }
                    ProccessedCommands();
                }
            }
            else
            {
                //TODO: change message checks
                if (s == "inc")
                {
                    turnData = ServiceLocator.GetService <CommandManager>().CreateTurnData(turn + 2, _playerRef.id);
                    string msg = JsonConvert.SerializeObject(turnData);
                    _cl.SendMessage(msg);
                    turn++;
                }
                else if (s == "0")
                {
                    _playerRef.id = 0;
                }
                else if (s == "1")
                {
                    _playerRef.id = 1;
                }
                else
                {
                }
            }
        }
    }
Example #2
0
 public void CommandExecute(HireCommand c)
 {
     Debug.Log(c.ToString());
 }