Example #1
0
 private void setBasicMoveAnimation(BasicMoveInfo basicMove, string animName, WrapMode wrapMode)
 {
     if (basicMove.animationClip == null)
     {
         return;
     }
     basicMove.name = animName;
     //if (animation[animName] != null) animation.RemoveClip(animName);
     attachAnimation(basicMove.animationClip, animName, basicMove.animationSpeed, wrapMode);
 }
Example #2
0
        public void playBasicMove(BasicMoveInfo basicMove, float interpolationSpeed)
        {
            if (GetComponent <Animation>().IsPlaying(basicMove.name) || controlsScript.isBlocking)
            {
                return;
            }
            GetComponent <Animation>().CrossFade(basicMove.name, interpolationSpeed);

            _playBasicMove(basicMove);
        }
Example #3
0
        private void _playBasicMove(BasicMoveInfo basicMove)
        {
            if (basicMove.soundEffect != null && UFE.config.soundfx)
            {
                Camera.main.GetComponent <AudioSource>().PlayOneShot(basicMove.soundEffect);
            }

            if (basicMove.particleEffect.prefab != null)
            {
                GameObject pTemp = (GameObject)Instantiate(basicMove.particleEffect.prefab);
                pTemp.transform.parent        = transform;
                pTemp.transform.localPosition = basicMove.particleEffect.position;
                Destroy(pTemp, basicMove.particleEffect.duration);
            }
        }
Example #4
0
        public void applyForces(MoveInfo move)
        {
            if (xForce != 0)
            {
                transform.Translate(xForce * Time.deltaTime, 0, 0);
            }
            if (zForce != 0)
            {
                transform.Translate(0, 0, zForce * Time.deltaTime);
            }
            if (faceDirection > 0)
            {
                character.transform.localScale = new Vector3(1, 1, 1f);
            }
            else if (faceDirection < 0)
            {
                character.transform.localScale = new Vector3(1, 1, -1f);
            }

            if (move == null || (move != null && !move.ignoreGravity))
            {
                if ((yForce < 0 && !isGrounded()) || yForce > 0)
                {
                    yForce -= appliedGravity * Time.deltaTime;
                    transform.Translate(faceDirection * myControlsScript.myInfo.physics.jumpForwardSpeed * Time.deltaTime, yForce * Time.deltaTime, 0);
                }
                else if (yForce < 0 && isGrounded())
                {
                    currentAirJumps = 0;
                    yForce          = 0;
                }
            }

            if (isGrounded())
            {
                if (verticalTotalForce != 0)
                {
                    if (bounceTimes < UFE.config.bounceOptions.maximumBounces && myControlsScript.stunned &&
                        UFE.config.bounceOptions.bounceForce != Sizes.None &&
                        yForce <= -UFE.config.bounceOptions.minimumBounceForce)
                    {
                        if (!UFE.config.bounceOptions.bounceHitBoxes)
                        {
                            myHitBoxesScript.hideHitBoxes();
                        }
                        if (UFE.config.bounceOptions.bounceForce == Sizes.Small)
                        {
                            addForce(new Vector2(0, -yForce / 2.4f), 1);
                        }
                        else if (UFE.config.bounceOptions.bounceForce == Sizes.Medium)
                        {
                            addForce(new Vector2(0, -yForce / 1.8f), 1);
                        }
                        else if (UFE.config.bounceOptions.bounceForce == Sizes.High)
                        {
                            addForce(new Vector2(0, -yForce / 1.2f), 1);
                        }
                        bounceTimes++;
                        if (!isBouncing)
                        {
                            myControlsScript.stunTime += airTime + UFE.config.knockDownOptions.knockedOutTime;
                            myMoveSetScript.playBasicMove(myMoveSetScript.basicMoves.bounce);
                            if (UFE.config.bounceOptions.bouncePrefab != null)
                            {
                                GameObject pTemp = (GameObject)Instantiate(UFE.config.bounceOptions.bouncePrefab);
                                pTemp.transform.parent        = transform;
                                pTemp.transform.localPosition = Vector3.zero;
                                Destroy(pTemp, 3);
                            }
                            isBouncing = true;
                        }
                        return;
                    }

                    verticalTotalForce            = 0;
                    airTime                       = 0;
                    myMoveSetScript.totalAirMoves = 0;
                    BasicMoveInfo airAnimation = null;
                    if (myControlsScript.stunned)
                    {
                        myControlsScript.stunTime = UFE.config.knockDownOptions.knockedOutTime + UFE.config.knockDownOptions.getUpTime;
                        airAnimation = myMoveSetScript.basicMoves.fallDown;
                        myControlsScript.currentState = PossibleStates.FallDown;
                        if (!UFE.config.knockDownOptions.knockedOutHitBoxes)
                        {
                            myHitBoxesScript.hideHitBoxes();
                        }
                    }
                    else
                    {
                        if ((myControlsScript.currentMove != null && myControlsScript.currentMove.cancelMoveWheLanding) ||
                            myControlsScript.currentMove == null)
                        {
                            airAnimation = myMoveSetScript.basicMoves.landing;
                            myControlsScript.KillCurrentMove();
                        }
                        if (myControlsScript.isRun)
                        {
                            myControlsScript.currentState = PossibleStates.Run;
                        }
                        else
                        {
                            myControlsScript.currentState = PossibleStates.Stand;
                        }
                    }
                    isBouncing  = false;
                    bounceTimes = 0;
                    if (airAnimation != null && !character.GetComponent <Animation>().IsPlaying(airAnimation.name))
                    {
                        myMoveSetScript.playBasicMove(airAnimation);
                    }
                }

                if (!myControlsScript.stunned && move == null)
                {
                    if (xForce == walkSpeed || xForce == -walkSpeed || zForce == walkSpeed || zForce == -walkSpeed)
                    {
                        myMoveSetScript.playBasicMove(myMoveSetScript.basicMoves.moveForward);
                    }
                    else if (xForce == runSpeed || xForce == -runSpeed || zForce == runSpeed || zForce == -runSpeed)
                    {
                        myMoveSetScript.playBasicMove(myMoveSetScript.basicMoves.run);
                    }
                }
            }
            else if (yForce > 0 || !isGrounded())
            {
                if (move != null && myControlsScript.currentState == PossibleStates.Stand)
                {
                    myControlsScript.currentState = PossibleStates.Jump;
                }
                if (move == null && yForce / verticalTotalForce > 0 && yForce / verticalTotalForce <= 1)
                {
                    if (isBouncing)
                    {
                        return;
                    }
                    BasicMoveInfo airAnimation = myControlsScript.stunned ?
                                                 myMoveSetScript.basicMoves.getHitAir : myMoveSetScript.basicMoves.jumping;

                    if (xForce == 0)
                    {
                        myControlsScript.currentState = PossibleStates.Jump;
                    }
                    else
                    {
                        if (xForce > 0)
                        {
                            myControlsScript.currentState = PossibleStates.Jump;
                        }

                        if (xForce < 0)
                        {
                            myControlsScript.currentState = PossibleStates.Jump;
                        }
                    }

                    if (!character.GetComponent <Animation>().IsPlaying(airAnimation.name))
                    {
                        //character.animation[airAnimation].speed = character.animation[airAnimation].length * (appliedGravity/verticalTotalForce);
                        character.GetComponent <Animation>()[airAnimation.name].speed = character.GetComponent <Animation>()[airAnimation.name].length / airTime;
                        myMoveSetScript.playBasicMove(airAnimation);
                    }
                }
                else if (move == null && yForce / verticalTotalForce <= 0)
                {
                    BasicMoveInfo airAnimation;
                    if (isBouncing)
                    {
                        airAnimation = myMoveSetScript.basicMoves.fallingFromBounce;
                    }
                    else
                    {
                        airAnimation = myControlsScript.stunned ?
                                       myMoveSetScript.basicMoves.getHitAir : myMoveSetScript.basicMoves.falling;
                    }

                    if (!character.GetComponent <Animation>().IsPlaying(airAnimation.name))
                    {
                        //character.animation[airAnimation].speed = character.animation[airAnimation].length * (appliedGravity/verticalTotalForce);
                        //character.animation.CrossFade(airAnimation, GlobalScript.getCurrentMoveSet(myControlsScript.myInfo).interpolationSpeed);
                        character.GetComponent <Animation>()[airAnimation.name].speed = character.GetComponent <Animation>()[airAnimation.name].length / airTime;
                        myMoveSetScript.playBasicMove(airAnimation);
                    }
                }
            }
            // if (xForce == 0 && yForce == 0 && zForce == 0)
            faceDirection = 0;
        }