예제 #1
0
        public void Crouch()
        {
            if (LockAnimation)
            {
                return;
            }

            if (CurrentStanceAnimations != CrouchAnimations)
            {
                if (CurrentMovementInput == MovementInputs.Left || CurrentMovementInput == MovementInputs.Right)
                {
                    Roll();
                }
                else
                {
                    CurrentStanceAnimations = CrouchAnimations;
                    SetRobotAnimation(ActiveMovementStance);
                    if (Sounds.CrouchStartSound != UnitSounds.CrouchStartSounds.None)
                    {
                        PlayerSFXGenerator.PlayCrouchStartSound(Sounds.CrouchStartSound);
                    }
                }
            }
            else
            {
                CurrentStanceAnimations = CrouchAnimations;
                SetRobotAnimation(ActiveMovementStance);
            }
        }
예제 #2
0
        public void Move(MovementInputs MovementInput)
        {
            Equipment.Move(MovementInput);

            if (LockAnimation)
            {
                return;
            }

            if (IsOnGround)
            {
                if (CurrentStanceAnimations == CrouchAnimations && Sounds.CrouchMoveSound != UnitSounds.CrouchMoveSounds.None)
                {
                    PlayerSFXGenerator.PlayCrouchMoveSound(Sounds.CrouchMoveSound);
                }
                else if (CurrentStanceAnimations == ProneAnimations && Sounds.ProneMoveSound != UnitSounds.ProneMoveSounds.None)
                {
                    PlayerSFXGenerator.PlayProneMoveSound(Sounds.ProneMoveSound);
                }
                else if (Sounds.StepGrassSound != UnitSounds.StepGrassSounds.None)
                {
                    PlayerSFXGenerator.PlayStepGrassSound(Sounds.StepGrassSound);
                }
            }

            SetRobotAnimation(ActiveMovementStance);
        }
예제 #3
0
 public void Roll()
 {
     LockAnimation           = true;
     CurrentStanceAnimations = RollAnimations;
     SetRobotAnimation(CurrentStanceAnimations.GetDefaultAnimationName());
     CurrentStanceAnimations = CrouchAnimations;
     if (Sounds.RollSound != UnitSounds.RollSounds.None)
     {
         PlayerSFXGenerator.PlayRollSound(Sounds.RollSound);
     }
 }
예제 #4
0
        public void GoProne()
        {
            if (LockAnimation)
            {
                return;
            }

            if (CurrentMovementInput == MovementInputs.Left || CurrentMovementInput == MovementInputs.Right)
            {
            }
            else
            {
                CurrentStanceAnimations = ProneAnimations;
                SetRobotAnimation(CurrentStanceAnimations.GetDefaultAnimationName());
                if (Sounds.ProneStartSound != UnitSounds.ProneStartSounds.None)
                {
                    PlayerSFXGenerator.PlayProneStartSound(Sounds.ProneStartSound);
                }
            }
        }
예제 #5
0
        public void SetIdle()
        {
            if (LockAnimation)
            {
                return;
            }

            if (CurrentStanceAnimations == CrouchAnimations && Sounds.CrouchEndSound != UnitSounds.CrouchEndSounds.None)
            {
                PlayerSFXGenerator.PlayCrouchEndSound(Sounds.CrouchEndSound);
            }
            else if (CurrentStanceAnimations == ProneAnimations && Sounds.ProneEndSound != UnitSounds.ProneEndSounds.None)
            {
                PlayerSFXGenerator.PlayProneEndSound(Sounds.ProneEndSound);
            }

            Equipment.OnIdle();

            CurrentStanceAnimations = StandingAnimations;
            SetRobotAnimation("None");
        }