Exemple #1
0
    public void SyncInputControllers()
    {
        List <int>  selected   = new List <int>();
        List <long> selectediD = new List <long>();

        foreach (var controller in controllers)
        {
            selectediD.Add(controller.memberId);
            selected.Add(GetIndexOfCharacter(controller.controlledCharacter));
        }
        PlayerHandlerData data = new PlayerHandlerData(selected.ToArray(), selectediD.ToArray());

        DiscordNetworkLayerService.INSTANCE.SendMessegeToAllOthers(NetworkChannel.CONTROLLER_SYNC, data.ToBytes());
    }
Exemple #2
0
    // Start is called before the first frame update
    void Start()
    {
        controllers = GetComponentsInChildren <InputController>();
        foreach (var item in playableChracters)
        {
            charactherDictionary.Add(item.id, item);
        }
        GameManager.INSTANCE.AssignPlayersToControllers(ref controllers);
        foreach (var controller in controllers)
        {
            if (controller.memberId != 0)
            {
                controllerDictionary.Add(controller.memberId, controller);
            }
        }
        if (GameManager.INSTANCE.IsTheHost())
        {
            List <int>  selected   = new List <int>();
            List <long> selectediD = new List <long>();
            //Randomize the Controllers Playercharacter

            foreach (var controller in controllers)
            {
                int rand = UnityEngine.Random.Range(0, playableChracters.Count);
                while (selected.Contains(rand))
                {
                    rand = UnityEngine.Random.Range(0, playableChracters.Count);
                }

                selected.Add(rand);
                selectediD.Add(controller.memberId);
            }

            SetAllPlayers(selected.ToArray(), selectediD.ToArray());

            PlayerHandlerData data = new PlayerHandlerData(selected.ToArray(), selectediD.ToArray());
            DiscordNetworkLayerService.INSTANCE.SendMessegeToAllOthers(NetworkChannel.CONTROLLER_SYNC, data.ToBytes());
        }
    }