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); }
public void playBasicMove(BasicMoveInfo basicMove, float interpolationSpeed) { if (GetComponent <Animation>().IsPlaying(basicMove.name) || controlsScript.isBlocking) { return; } GetComponent <Animation>().CrossFade(basicMove.name, interpolationSpeed); _playBasicMove(basicMove); }
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); } }
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; }