private void ExecuteAction() { if ((Array.IndexOf(AnimationStates.GetAttacks(), characterAction) >= 0)) { characterActions.PerformAttack(characterAction); } else if (characterAction == AnimationStates.WALK_BACKWARDS) { characterActions.Block(); characterActions.Walk(rigidBody, animator, AnimationStates.WALK_BACKWARDS); } else if (characterAction == AnimationStates.WALK_FORWARDS) { characterActions.Walk(rigidBody, animator, AnimationStates.WALK_FORWARDS); } else if (characterAction == AnimationStates.STANDING && !currentCharacter.GetIsJumping()) { animator.SetFloat("Horizontal", 0); currentCharacter.EndAnimation(AnimationStates.STANDING); } else if (characterAction == AnimationStates.JUMPING_BACKWARDS) { switch (currentCharacter.GetIsFlipped()) { case true: characterActions.Jump(rigidBody, "JumpingRight"); break; case false: characterActions.Jump(rigidBody, "JumpingLeft"); break; } } else if (characterAction == AnimationStates.JUMPING_FORWARDS) { switch (currentCharacter.GetIsFlipped()) { case true: characterActions.Jump(rigidBody, "JumpingLeft"); break; case false: characterActions.Jump(rigidBody, "JumpingRight"); break; } } else if (characterAction == AnimationStates.JUMPING_UP) { characterActions.Jump(rigidBody, "JumpingUp"); } else if (characterAction == AnimationStates.BLOCKING_JUMPING || characterAction == AnimationStates.BLOCKING_CROUCHING) { characterActions.Block(); characterActions.Invoke("StopBlocking", 5); //// Stops blocking after x seconds } ///// Swap characters if (characterAction == "SwapCharacter2") { characterAssist.Swap("Assist1", false); } else if (characterAction == "SwapCharacter3") { characterAssist.Swap("Assist2", false); } }
/*public void falling(){ ///////JUST IN CASE/////////////Loops last frames of falling animation * animator.Play(AnimationStates.JUMPING_DOWN,0,0.5f); * }*/ ///////////////// void Update() { if ((currentCharacter.IsAnimationPlaying() && !currentCharacter.GetIsJumping() && !currentCharacter.GetIsHit())) { //In case the animation goes from walking to other animation, prevents from sliding behaviour rigidBody.velocity = new Vector2(0, 0); } if (!currentCharacter.GetIsBlocked()) { ///Moving animator.SetFloat("Horizontal", 0); //Sets the horizontal back to 0 so that the animator can move from walking to standing (if not, loops the walking animation) // When character moves right (depending on side of the field) if ((Input.GetKey(GameConstants.R))) { switch (currentCharacter.GetIsFlipped()) { case true: characterActions.Walk(rigidBody, animator, AnimationStates.WALK_BACKWARDS); break; case false: characterActions.Walk(rigidBody, animator, AnimationStates.WALK_FORWARDS); break; } } // When character moves left (depending on side of the field) else if ((Input.GetKey(GameConstants.L))) { switch (currentCharacter.GetIsFlipped()) { case true: characterActions.Walk(rigidBody, animator, AnimationStates.WALK_FORWARDS); break; case false: characterActions.Walk(rigidBody, animator, AnimationStates.WALK_BACKWARDS); break; } } if (Input.GetKeyUp(GameConstants.L) || Input.GetKeyUp(GameConstants.R)) { characterActions.StopBlocking(); if (currentCharacter.GetAnimationStatus() == AnimationStates.WALK_BACKWARDS || currentCharacter.GetAnimationStatus() == AnimationStates.WALK_FORWARDS) { rigidBody.velocity = new Vector2(0, 0); } } //Blocking if ((Input.GetKey(GameConstants.R)) && currentCharacter.GetIsFlipped() || (Input.GetKey(GameConstants.L)) && !currentCharacter.GetIsFlipped()) { characterActions.Block(); } // Crouching if (Input.GetKey(GameConstants.D) && !currentCharacter.IsAnimationPlaying() && !currentCharacter.GetIsCrouching() && !currentCharacter.GetIsJumping()) { rigidBody.velocity = new Vector2(0, 0); //Prevents from sliding characterActions.SetCoordinatesWhenLanding(); //Prevents from phasing through the ground if the down button is pressed when the character touches the ground after a jump. currentCharacter.PlayAnimation(AnimationStates.CROUCH); currentCharacter.SetAnimationStatus(AnimationStates.CROUCH); currentCharacter.SetIsCrouching(true); currentCharacter.SetAnimationPlaying(false); } if (Input.GetKeyUp(GameConstants.D) && !currentCharacter.GetIsJumping()) { //SetCoordinatesWhenLanding(); currentCharacter.SetIsCrouching(false); if (!currentCharacter.IsAnimationPlaying()) { currentCharacter.EndAnimation(AnimationStates.STANDING); } } // Jumping if (Input.GetKeyDown(GameConstants.U) && !currentCharacter.IsAnimationPlaying() && !currentCharacter.GetIsCrouching() && !currentCharacter.GetIsJumping()) { if (Input.GetKey(GameConstants.R)) { characterActions.Jump(rigidBody, "JumpingRight"); } else if (Input.GetKey(GameConstants.L)) { characterActions.Jump(rigidBody, "JumpingLeft"); } else { characterActions.Jump(rigidBody, "JumpingUp"); } } } }