Пример #1
0
    // Use this for initialization
    void OnEnable()
    {
        if (ITweenSpace.Equals(MovementType.WorldSpace) || ITweenSpace.Equals(MovementType.UISpace))
        {
            //Movement
            if (Movement)
            {
                if (ITweenSpace.Equals(MovementType.UISpace))
                {
                    PlayUIMovement();
                }
                else
                {
                    PlayWorldMovement();
                }
            }

            //Rotation
            if (Rotation)
            {
                PlayRotation();
            }

            //Scale
            if (Scale)
            {
                PlayScale();
            }
        }

        //Destroy(gameObject);
    }
    private void ChangeMovementType(int photonOwnerID, MovementType value)
    {
        if (photonOwnerID == pv.ownerId)
        {
            movementType = value;
            if (movementType.Equals(MovementType.Player))
            {
                GetComponent <CapsuleCollider>().radius = 0.5f;

                if (playerAnimation.playerCameraView.Equals(PlayerCameraView.FirstPerson))
                {
                    playerObjectComponents.ThirdPersonPlayer.SetActive(false);
                    playerObjectComponents.FirstPersonPlayer.SetActive(true);
                }
                else
                {
                    playerObjectComponents.ThirdPersonPlayer.SetActive(true);
                    playerObjectComponents.FirstPersonPlayer.SetActive(false);
                }
                BumperCarObject.SetActive(false);

                CameraObject.transform.localPosition = new Vector3(0, .75f, 0);
                CameraObject.transform.localRotation = Quaternion.identity;
                CameraObject.transform.Rotate(new Vector3(0, 0, 0));

                maxSpeed = 40;

                friction          = 2;
                runAcceleration   = 120;
                runDeacceleration = 120;
                airAcceleration   = 60;
                airDeacceleration = 60;
            }
            else if (movementType.Equals(MovementType.BumperCar))
            {
                GetComponent <CapsuleCollider>().radius = 1f;

                PlayerObject.SetActive(false);
                LocalArms.SetActive(false);

                BumperCarObject.SetActive(true);

                CameraObject.transform.localPosition = new Vector3(0, 1.5f, -1.5f);
                CameraObject.transform.localRotation = Quaternion.identity;
                CameraObject.transform.Rotate(new Vector3(30, 0, 0));

                maxSpeed = 75;

                friction          = 1f;
                runAcceleration   = 1;
                runDeacceleration = 1;
                airAcceleration   = 1;
                airDeacceleration = 1;
            }
        }
    }
Пример #3
0
        public void Equals_ShouldReturnFalse_WhenMovementTypesAreNotEqual()
        {
            var type1 = new MovementType(1, "Type");
            var type2 = new MovementType(2, "Type");
            var type3 = new MovementType(1, "Some other type");

            Assert.That(type1.Equals(type2), Is.False);
            Assert.That(type1.Equals(type3), Is.False);
            Assert.That(type1.Equals(null), Is.False);
        }
Пример #4
0
    private IEnumerator SlowDownAfterRun()
    {
        yield return(new WaitForSeconds(GetCurrentAnimDuration(m_Curr_Anim_Trigger)));

        if (mCurrMovementType.Equals(MovementType.Stop_Idle))
        {
            SetAnim(Buddy_Animation_Triggers.Idle);
        }
        else if (mCurrMovementType.Equals(MovementType.Stop_And_Confused))
        {
            SetAnim(Buddy_Animation_Triggers.SadAndConfused);
        }
    }
Пример #5
0
        public void Equals_ShouldReturnTrue_WhenMovementTypesAreEqual()
        {
            var type1 = new MovementType(1, "Type");
            var type2 = new MovementType(1, "Type");

            Assert.That(type1.Equals(type2), Is.True);
        }
Пример #6
0
    private void Chase()
    {
        Transform playerPosition = playerReference.transform;

        if (movementType.Equals(MovementType.MoveTowards))
        {
            transform.position = Vector3.MoveTowards(transform.position, playerPosition.position, movementSpeed * Time.deltaTime);
        }
        else
        {
            transform.position = Vector3.Lerp(transform.position, playerPosition.position, movementSpeed * Time.deltaTime);
        }

        if (transform.position.x < playerPosition.position.x)
        {
            transform.rotation = Quaternion.Euler(0, 0, 0);
        }
        else
        {
            transform.rotation = Quaternion.Euler(0, 180, 0);
        }

        if (Vector2.Distance(transform.position, playerPosition.position) > 50)
        {
            GetComponent <Damageable>().Die();
        }
    }
Пример #7
0
        public void LoadLevelContent(String fileName, MarioGame game)
        {
            levelReader = new XmlTextReader(fileName);
            levelReader.MoveToContent();
            Type[] ConstructorTypes = new Type[2];
            ConstructorTypes[0] = typeof(int);
            ConstructorTypes[1] = typeof(int);

            while (levelReader.ReadToFollowing("item"))
            {
                String   MovementType;
                String   ObjectType;
                Object[] Position = new Object[2];

                levelReader.ReadToDescendant("Type");
                levelReader.MoveToFirstAttribute();
                MovementType = levelReader.Value;
                levelReader.MoveToElement();
                levelReader.ReadToNextSibling("Object");
                levelReader.MoveToFirstAttribute();
                ObjectType = levelReader.Value;
                levelReader.MoveToElement();
                levelReader.ReadToNextSibling("Location");
                levelReader.MoveToFirstAttribute();
                Position[0] = Convert.ToInt32(levelReader.Value);
                levelReader.MoveToNextAttribute();
                Position[1] = Convert.ToInt32(levelReader.Value);

                IGameObject CurrentObject = (IGameObject)Type.GetType("SuperMario." + ObjectType).GetConstructor(ConstructorTypes).Invoke(Position);
                if (MovementType.Equals("Background"))
                {
                    backgroundObjects.Add(CurrentObject);
                }
                else if (MovementType.Equals("Dynamic"))
                {
                    dynamicObjects.Add(CurrentObject);
                }
                else
                {
                    int ListPos = CurrentObject.XCoordinate / GlobalVariables.BlockSize;
                    if (staticObjects.ContainsKey(ListPos))
                    {
                        staticObjects[ListPos].Add(CurrentObject);
                    }
                    else
                    {
                        staticObjects.Add(ListPos, new List <IGameObject>());
                        staticObjects[ListPos].Add(CurrentObject);
                    }
                }

                if (CurrentObject is Mario)
                {
                    player = CurrentObject;
                }
            }
            //load collision dictionary once the level is loaded
            handler = new CollisionHandler(this, game);
        }
Пример #8
0
    public IEnumerator StartMovementSequence()
    {
        mRBody.useGravity = m_UseGravity;
        if (m_RotateOnNextPos)
        {
            StartCoroutine(Utils.RotateTo(mRBody, mRBody.rotation, transform.rotation, 0.5f, 0.1f));
        }
        yield return(new WaitForSeconds(m_DelayBeforeMove));

        if (m_MovementType.Equals(MovementType.Run))
        {
            //Debug.Log(m_ObjectToMove.name + " Run... ");
            float t = Vector3.Distance(mRBody.position, m_NextMovementPoint.position) / m_Speed;
            StartCoroutine(Utils.MoveToPos(mRBody, mRBody.position, m_NextMovementPoint.position, t));
            Utils.OnGameObjectMovementChanged(m_ObjectToMove, MovementType.Run);
        }
        else if (m_MovementType.Equals(MovementType.Jump))
        {
            //Debug.Log(m_ObjectToMove.name + " jump...");
            mRBody.AddForce(m_JumpForce);
            Utils.OnGameObjectMovementChanged(m_ObjectToMove, MovementType.Jump);
        }
        else if (m_MovementType.Equals(MovementType.Stop_Idle))
        {
            //Debug.Log(m_ObjectToMove.name + " stop idle...");
            Utils.OnGameObjectMovementChanged(m_ObjectToMove, MovementType.Stop_Idle);
        }
        else if (m_MovementType.Equals(MovementType.Stop_And_Confused))
        {
            //Debug.Log(m_ObjectToMove.name + " stop confused...");
            Utils.OnGameObjectMovementChanged(m_ObjectToMove, MovementType.Stop_And_Confused);
        }
        else if (m_MovementType.Equals(MovementType.FlyAway))
        {
            //Debug.Log(m_ObjectToMove.name + " flyaway...");
            List <Vector3> points = new List <Vector3>();
            foreach (Transform point in m_NextMovementPoints)
            {
                points.Add(point.position);
            }

            float t = Vector3.Distance(mRBody.position, points[points.Count - 1]) / m_Speed;
            StartCoroutine(Utils.MoveToPositions(mRBody, mRBody.position, points, t, 0.2f));
            Utils.OnGameObjectMovementChanged(m_ObjectToMove, MovementType.FlyAway);
        }
    }
Пример #9
0
 private void Pawn_OnMove(Pawn pawn, int newX, int newY, MovementType moveType)
 {
     if (moveType.Equals(MovementType.Move))
     {
         if (IsLegalBoardPosition(newX, newY) && pieces.GetValue(newX, newY) == null)
         {
             pieces[pawn.XCoordinate, pawn.YCoordinate] = null;
             pawn.XCoordinate   = newX;
             pawn.YCoordinate   = newY;
             pieces[newX, newY] = pawn;
         }
     }
 }
Пример #10
0
    void Update()
    {
        if (canMove)
        {
            if (positions.Length > 1 && positions != null)
            {
                if ((transform.position - positions[counter].position).magnitude < 0.001)
                {  // we reached the destination!
                   //counter = (counter + 1) % 2; alternate between 0 and 1, this for a 2 positions platform.

                    if (direction.Equals("Towards"))
                    {
                        counter++;
                    }
                    else if (direction.Equals("Backwards"))
                    {
                        counter--;
                    }

                    if (counter == 0)
                    {
                        direction = "Towards";
                    }
                    else if (counter == positions.Length - 1)
                    {
                        direction = "Backwards";
                    }
                }
                if (Type.Equals(MovementType.MoveTowards))
                {
                    transform.position = Vector3.MoveTowards(transform.position, positions[counter].position, speed * Time.deltaTime);
                }
                else
                {
                    transform.position = Vector3.Lerp(transform.position, positions[counter].position, speed * Time.deltaTime);
                }
            }
        }
    }
    private void Update()
    {
        if (pv.isMine)
        {
            if (InputManager.Instance.GetKeyDown(InputCode.Settings))
            {
                if (Cursor.lockState == CursorLockMode.None)
                {
                    Cursor.visible   = false;
                    Cursor.lockState = CursorLockMode.Locked;
                    //inputManager.KeybindDialogBox.hasAppliedSettings = true;
                }
                else if (Cursor.lockState == CursorLockMode.Locked)
                {
                    Cursor.visible   = true;
                    Cursor.lockState = CursorLockMode.None;
                    //inputManager.KeybindDialogBox.hasAppliedSettings = false;
                }
            }

            if (InputManager.Instance.GetKeyDown(InputCode.ToggleBumperCar))
            {
                if (movementType.Equals(MovementType.Player))
                {
                    //playerAnimation.SwitchCameraPerspective();
                    PlayerEvents_ChangeMovementType(pv.owner.ID, MovementType.BumperCar);
                }
                else
                {
                    //playerAnimation.SwitchCameraPerspective();
                    PlayerEvents_ChangeMovementType(pv.owner.ID, MovementType.Player);
                }
            }

            frameCount++;
            dt += Time.deltaTime;
            if (dt > 1.0f / fpsDisplayRate)
            {
                fps        = Mathf.Round(frameCount / dt);
                frameCount = 0;
                dt        -= 1.0f / fpsDisplayRate;

                PlayerScreenDisplay.Instance.Text_CurrentFrameRate.text = fps.ToString();
                PlayerScreenDisplay.Instance.Text_Ping.text             = PhotonNetwork.GetPing().ToString();
                PlayerScreenDisplay.Instance.Text_PlayerVelocity.text   = ((int)_playerVelocity.magnitude).ToString() + MPS;
            }

            if (CameraManager.Instance.spectateMode == CameraManager.SpectateMode.Free)
            {
                return;
            }

            /* Using the Mouse Senitivity Inputs DIRECTLY from SettingsManager */
            //Zoom_Vs_NoZoom

            if (EventManager.Instance.GetScore(pv.owner.NickName, PlayerStatCodes.Health) > 0)
            {
                if (movementType.Equals(MovementType.Player))
                {
                    rotY += Input.GetAxis(inputAxis_Mouse_X) * (mouseSensitivityValue / 3f) * 0.1f * Time.timeScale;
                }
                else
                {
                    if (cmd.rotatemove != 0)
                    {
                        rotY += (mouseSensitivityValue / 3f) * bumperCarRotationAcceleration * Mathf.Min(_playerVelocity.magnitude, 40) * Time.timeScale;
                    }
                }
            }

            //Smoothing over X number of Frames
            rotArrayY.Add(rotY);
            if (rotArrayY.Count >= 5)
            {
                rotArrayY.RemoveAt(0);
                //print(tr.rotation);
            }
            for (int i = 0; i < rotArrayY.Count; i++)
            {
                rotAverageX += rotArrayY[i];
            }
            rotAverageX /= rotArrayY.Count;
            //tr.rotation = Quaternion.Euler(0, rotAverageX, 0); // Rotates the collider

            tr.rotation = Quaternion.Euler(0, rotY, 0); // Rotates the collider



            detectCollision(2.5f);
            GroundCheck(2.1f);
            CeilingCheck();
            QueueJump();


            if (!playerObjectComponents.playerShooting.isRespawnPlayer)
            {
                GetComponent <CapsuleCollider>().radius = .5f;
                GetComponent <CapsuleCollider>().height = 2f;

                DoDustFX(_playerVelocity, grounded);

                if (grounded)
                {
                    if (landed == false)
                    {
                        //					pv.RPC ("LandFX", PhotonTargets.All);
                        landed = true;
                    }
                    hasJumped = false;
                    GroundMove();
                }
                else if (!grounded)
                {
                    AirMove();
                }

                //FUNCTIONS THAT DO NOT DEPEND ON:
                //-CHAT PANEL
                //-SETTINGS PANEL

                speedLimiter();
            }
            else
            {
                //DEAD SO JUST DROP WITH GRAVITY
                GetComponent <CapsuleCollider>().height = .25f;
                GetComponent <CapsuleCollider>().radius = .25f;
                _playerVelocity.y -= gravity * Time.deltaTime;
                detectCollision(.5f);
                CeilingCheck();
                GroundCheck(1f);
                if (grounded)
                {
                    ApplyFriction(.5f);
                }
            }
        }
        else
        {
            if (playerObjectComponents.networkPlayerMovement.otherPlayerHealth > 0)
            {
                DoDustFX(playerObjectComponents.networkPlayerMovement.otherPlayerVelocity, playerObjectComponents.networkPlayerMovement.otherPlayerFloorDetected);
            }
        }
    }
Пример #12
0
 /// <summary>
 /// Создаем необходимый нам Equals для правильной работы AreEqual в тестах.
 /// Сравнивает по всем свойствам объекта сразу.
 /// АЛЬТЕРНАТИВОЧКА: реализация через сравнение ToString().
 /// </summary>
 /// <param name="other"> Объект, с которым свравнивают.</param>
 /// <returns></returns>
 public bool Equals(Creature other)
 {
     // Возвращаем true, если значения совпадают.
     return(Name.Equals(other.Name) && MovementType.Equals(other.MovementType) && Health.Equals(other.Health));
 }