Example #1
0
    private IEnumerator waitingRoom(MPlayerController mp, Action onTimeoutDone)
    {
        var loc = GetRandomLocationXZ();

        loc.y = UnityEngine.Random.Range(300f, 10000f);
        var wRoom = Instantiate(respawnRoomPrefab);

        wRoom.transform.position = loc;


        Bounds wBounds = wRoom.GetComponent <Collider>().bounds;
        var    placePl = wBounds.center;

        mp.GetComponent <Rigidbody>().MovePosition(placePl);

        mp.thirdCam.teleportToPlayer();

        yield return(new WaitForSeconds(timeOutTime));

        Destroy(wRoom.gameObject);
        if (onTimeoutDone != null)
        {
            onTimeoutDone();
        }
    }
Example #2
0
        /// <summary>
        /// Обработка ввода
        /// </summary>
        /// <param name="parDeltaTime">Время кадра обработки устройств в миллисекундах</param>
        protected override void InputHandle(double parDeltaTime)
        {
            if (_mainPlayerRef == null)
            {
                if (PlayerBindsControllerWatchdog != null)
                {
                    _mainPlayerRef = PlayerBindsControllerWatchdog.PlayerControllers.First(
                        parX => parX.MPlayerRef == App.PlayersManager.Player1);

                    _devicesManagerOpenTk.OnDeviceAdded         += AssignToMainPlayer;
                    _devicesManagerOpenTk.OnBeforeDeviceRemoval += DeassignFromAllPlayers;

                    AssignAllToMainPlayer();
                }
            }


            if (_mainPlayerRef != null)
            {
                _devicesManagerOpenTk.DevicesCheckPolling();
                _devicesManagerOpenTk.UpdateDevicesStates();
            }
        }
Example #3
0
 public override void getGiven(MPlayerController mp)
 {
     Debug.Log("weapon get given");
     mp.acquireWeapon(weaponIndex);
 }
Example #4
0
        /// <summary>
        /// Определить и назначить стандартное управление для игрока
        /// </summary>
        /// <param name="parMPlayerController">Контроллер игрока</param>
        /// <param name="parAvailableDevice">Доступное физическое устройство OpenTK</param>
        protected void DefineAndPerformStandardAssignToPlayer(MPlayerController parMPlayerController,
                                                              MDeviceOpenTk parAvailableDevice)
        {
            void ConditionalAxisBindToDevice(EGameActionAxis parGameActionAxis, MDeviceOpenTk parDeviceOpenTk,
                                             string parAxisId)
            {
                if (parMPlayerController.MPlayerRef.GameActionAxises.ContainsKey(parGameActionAxis))
                {
                    parMPlayerController.MGameActionAxisBindToDevices.Add(
                        new MGameActionAxisBindToDevice(parDeviceOpenTk, parAxisId,
                                                        parMPlayerController.MPlayerRef.GameActionAxises[parGameActionAxis]));
                }
            }

            void ConditionalButtonBindToDevice(EGameActionButton parGameActionButton, MDeviceOpenTk parDeviceOpenTk,
                                               string parButtonId)
            {
                if (parMPlayerController.MPlayerRef.GameActionButtons.ContainsKey(parGameActionButton))
                {
                    parMPlayerController.MGameActionButtonBindToDevices.Add(
                        new MGameActionButtonBindToDevice(parDeviceOpenTk, parButtonId,
                                                          parMPlayerController.MPlayerRef.GameActionButtons[parGameActionButton]));
                }
            }

            if (parAvailableDevice.IsDeviceKeyboardAndMouse())
            {
                ConditionalButtonBindToDevice(EGameActionButton.Button_A, parAvailableDevice,
                                              ((int)Key.Space).ToString());
                ConditionalButtonBindToDevice(EGameActionButton.Button_B, parAvailableDevice,
                                              ((int)Key.Escape).ToString());
                ConditionalButtonBindToDevice(EGameActionButton.Button_X, parAvailableDevice,
                                              ((int)Key.E).ToString());
                ConditionalButtonBindToDevice(EGameActionButton.Button_Y, parAvailableDevice,
                                              ((int)Key.Q).ToString());

                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Up, parAvailableDevice,
                                              ((int)Key.W).ToString());
                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Down, parAvailableDevice,
                                              ((int)Key.S).ToString());
                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Left, parAvailableDevice,
                                              ((int)Key.A).ToString());
                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Right, parAvailableDevice,
                                              ((int)Key.D).ToString());

                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Up, parAvailableDevice,
                                              ((int)Key.Up).ToString());
                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Down, parAvailableDevice,
                                              ((int)Key.Down).ToString());
                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Left, parAvailableDevice,
                                              ((int)Key.Left).ToString());
                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Right, parAvailableDevice,
                                              ((int)Key.Right).ToString());

                ConditionalButtonBindToDevice(EGameActionButton.Button_Start, parAvailableDevice,
                                              ((int)Key.Enter).ToString());

                ConditionalButtonBindToDevice(EGameActionButton.Button_Bumper_Shift, parAvailableDevice,
                                              ((int)Key.ShiftLeft).ToString());
            }
            else
            {
                ConditionalAxisBindToDevice(EGameActionAxis.LeftCursorX, parAvailableDevice,
                                            MDeviceOpenTk.THUMBSTICK_LEFT_X_ID);
                ConditionalAxisBindToDevice(EGameActionAxis.LeftCursorY, parAvailableDevice,
                                            MDeviceOpenTk.THUMBSTICK_LEFT_Y_ID);

                ConditionalButtonBindToDevice(EGameActionButton.Button_A, parAvailableDevice,
                                              MDeviceOpenTk.GAMEPAD_BUTTON_BOTTOM_1_ID);
                ConditionalButtonBindToDevice(EGameActionButton.Button_B, parAvailableDevice,
                                              MDeviceOpenTk.GAMEPAD_BUTTON_BOTTOM_2_ID);
                ConditionalButtonBindToDevice(EGameActionButton.Button_X, parAvailableDevice,
                                              MDeviceOpenTk.GAMEPAD_BUTTON_TOP_1_ID);
                ConditionalButtonBindToDevice(EGameActionButton.Button_Y, parAvailableDevice,
                                              MDeviceOpenTk.GAMEPAD_BUTTON_TOP_2_ID);

                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Up, parAvailableDevice,
                                              MDeviceOpenTk.GAMEPAD_BUTTON_DPAD_UP_ID);
                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Down, parAvailableDevice,
                                              MDeviceOpenTk.GAMEPAD_BUTTON_DPAD_DOWN_ID);
                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Left, parAvailableDevice,
                                              MDeviceOpenTk.GAMEPAD_BUTTON_DPAD_LEFT_ID);
                ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Right, parAvailableDevice,
                                              MDeviceOpenTk.GAMEPAD_BUTTON_DPAD_RIGHT_ID);

                ConditionalButtonBindToDevice(EGameActionButton.Button_Start, parAvailableDevice,
                                              MDeviceOpenTk.GAMEPAD_BUTTON_CENTER_1_ID);
            }
        }
Example #5
0
        //private void OnTriggerEnter(Collider other) {
        //    //if(!available) { return; }
        //    MPlayerController mp = other.GetComponent<MPlayerController>();
        //    if (mp) {
        //        GetComponentInParent<PickupSpawner>().OnPlayerPickedup(mp, this);
        //    }
        //    //Destroy(gameObject);
        //}

        public abstract void getGiven(MPlayerController mp);
Example #6
0
 public void placeInWaitingRoom(MPlayerController mp, Action OnTimeoutDone)
 {
     StartCoroutine(waitingRoom(mp, OnTimeoutDone));
 }