public void Hit() { SlashController slashController = Instantiate(slashPrefab, transform).GetComponent <SlashController>(); slashController.transform.localPosition += slashOffset; slashController.Setup(weaponObject, GetComponentInParent <Rigidbody>().velocity); playerController.JuicePlayer(weaponObject.JuiceCost); }
void SlashAttack() { AnimatorStateInfo stateInfo = playerAnimator.GetCurrentAnimatorStateInfo(0); bool loading = stateInfo.IsName("Player_slash"); if (Input.GetKeyDown(KeyCode.LeftAlt)) { playerAnimator.SetTrigger("loading"); aura.StartAura(); } else if (Input.GetKeyUp(KeyCode.LeftAlt)) { playerAnimator.SetTrigger("attacking"); if (aura.IsLoaded()) { // Obtenemos los angulos hacia donde esta mirando el player // Segun la animacion. float[] anglePosition = GetAnglePosition(); float angle = Mathf.Atan2( anglePosition[0], anglePosition[1] ) * Mathf.Rad2Deg; // Creamos la instancia de Slash GameObject slashObj = Instantiate( slashPrefab, transform.position, Quaternion.AngleAxis(angle, Vector3.forward)); // Asignamos el movimiento SlashController slash = slashObj.GetComponent <SlashController>(); slash.movement.x = playerAnimator.GetFloat("movementX"); slash.movement.y = playerAnimator.GetFloat("movementY"); } aura.StopAura(); // Esperamos unos segundos y continuamos con el movimiento // del personaje StartCoroutine(EnableMovementAfter(0.4f)); } if (loading) { movePrevent = true; } }
public override void initialize() { attackType = AttackType.Combo; eventHandler = GameManager.playerAnimator.gameObject.GetComponent <AnimationEventBroadcast>(); eventHandler.subscribe(this); stick = GameManager.player.GetComponent <PlayerController>().weapon.GetComponentInChildren <Collider>(); leg = GameManager.player.GetComponent <PlayerController> ().playerLegObject.GetComponent <Collider> (); fist = GameManager.player.GetComponent <PlayerController> ().playerFistObject.GetComponent <Collider> (); attackColliderStick = GameManager.player.GetComponent <PlayerController>().weapon.GetComponentInChildren <AttackCollider>(); attackColliderLeg = GameManager.player.GetComponent <PlayerController> ().playerLegObject.GetComponent <AttackCollider> (); attackColliderFist = GameManager.player.GetComponent <PlayerController> ().playerFistObject.GetComponent <AttackCollider> (); weaponEffects = GameManager.player.GetComponent <PlayerController>().weapon.GetComponentInChildren <Xft.XWeaponTrail>(); slashController = GameManager.player.GetComponent <PlayerController>().weapon.GetComponentInChildren <SlashController>(); enemiesHit = new List <GameObject> (0); //weaponEffects.StopSmoothly(0.1f); }
private IEnumerator attack() { //create instance of attack animator.SetTrigger("slash"); float val = spriteRenderer.flipX == true ? transform.position.x - 1 : transform.position.x + 1; GameObject slashInstance = Instantiate(slash, new Vector3(val, transform.position.y, 0), Quaternion.identity); SlashController slashcon = slashInstance.GetComponent <SlashController>(); float speed = spriteRenderer.flipX == true ? -13f - 2f : 13f + 2f; slashcon.setDirection(spriteRenderer.flipX); slashcon.setSpeed(speed); yield return(new WaitForSecondsRealtime(Random.Range(2, 4))); attackQueued = false; }
// Update is called once per frame void Update() { if (SceneManager.GetActiveScene().buildIndex == 3 && added) { Debug.Log("ADDING SKILS"); skillController.obtainSkill(Skills.SLASH); skillController.obtainSkill(Skills.WALLJUMP); skillController.obtainSkill(Skills.DASH); Debug.Log(skillController.availableSkills.Count); added = false; } if (SceneManager.GetActiveScene().buildIndex == 4 && added) { Debug.Log("ADDING FINAL SKILS"); skillController.obtainSkill(Skills.SLASH); skillController.obtainSkill(Skills.WALLJUMP); skillController.obtainSkill(Skills.DASH); skillController.obtainSkill(Skills.SNAKE); skillController.obtainSkill(Skills.HOVER); Debug.Log(skillController.availableSkills); added = false; } if (Input.GetKeyDown(KeyCode.P)) { GameObject.FindGameObjectWithTag("MainCamera").GetComponent <GameManager>().pauseGame(); } if (Input.GetKeyDown(KeyCode.M)) { GameObject.FindGameObjectWithTag("MainCamera").GetComponent <GameManager>().MutePressed(); } if (pause) { return; } Vector2 newVelocity = rb.velocity; //bool isSnake = snakePowerUp.isActive; if (Input.GetKey(KeyCode.LeftArrow)) { if (spriteRenderer != null) { // flip the sprite spriteRenderer.flipX = true; } newVelocity.x = -speed; animator.SetBool("walk", true); } else if (Input.GetKey(KeyCode.RightArrow)) { spriteRenderer.flipX = false; newVelocity.x = speed; animator.SetBool("walk", true); } else { newVelocity.x = 0; animator.SetBool("walk", false); } if (Input.GetKeyDown(KeyCode.Space) && !isSnake && availableJumps > 0) { newVelocity.y = jumpSpeed; removeJump(); } if (Input.GetKey(KeyCode.UpArrow) && canClimb) { newVelocity.y = jumpSpeed; rb.gravityScale = 0; animator.SetBool("isClimbing", true); } if (Input.GetKey(KeyCode.DownArrow) && canClimb) { newVelocity.y = -jumpSpeed; rb.gravityScale = 0; animator.SetBool("isClimbing", true); } rb.velocity = newVelocity; if (skillController.hasSkill(Skills.SLASH) && Input.GetKeyDown(KeyCode.A)) { animator.SetTrigger("slash"); float val = spriteRenderer.flipX == true ? transform.position.x - 1 : transform.position.x + 1; GameObject slashInstance = Instantiate(slash, new Vector3(val, transform.position.y, 0), Quaternion.identity); SlashController slashcon = slashInstance.GetComponent <SlashController>(); float selectedSpeed = spriteRenderer.flipX == true ? -slashSpeed : slashSpeed; Debug.Log("DATA: " + val + ' ' + selectedSpeed + ' ' + spriteRenderer.flipX + ' '); slashcon.setDirection(spriteRenderer.flipX); slashcon.setSpeed(selectedSpeed); } if (skillController.hasSkill(Skills.HOVER) && Input.GetKeyDown(KeyCode.D)) { rb.gravityScale = 0.5f; } if (skillController.hasSkill(Skills.HOVER) && Input.GetKeyUp(KeyCode.D)) { rb.gravityScale = 1f; } if (skillController.hasSkill(Skills.DASH) && Input.GetKey(KeyCode.LeftShift)) { skillController.dash(); isRunning = true; animator.SetTrigger("run"); } else if (Input.GetKeyUp(KeyCode.LeftShift)) { speed = 4f; } // Check left side colliding: Collider2D[] collidersLeft = Physics2D.OverlapBoxAll(LeftWallDetector.position, WallDetectorSize, 0f, LayerMask.GetMask("JumpableWall")); //Check right side colliding: Collider2D[] collidersRight = Physics2D.OverlapBoxAll(RightWallDetector.position, WallDetectorSize, 0f, LayerMask.GetMask("JumpableWall")); //Set can wall jump: if ((collidersLeft.Length > 0 || collidersRight.Length > 0) && (skillController.hasSkill(Skills.WALLJUMP) && Input.GetKey(KeyCode.Space))) { canWallJump = true; } else { canWallJump = false; } if ((collidersLeft.Length > 0 || collidersRight.Length > 0) && (skillController.hasSkill(Skills.WALLJUMP))) { canWallJump = true; } else { animator.SetBool("wallJump", false); canWallJump = false; } // Animate + Flip on x: if (collidersLeft.Length > 0 && (skillController.hasSkill(Skills.WALLJUMP))) { animator.SetBool("wallJump", true); animator.SetBool("walk", false); spriteRenderer.flipX = false; } if (collidersRight.Length > 0 && (skillController.hasSkill(Skills.WALLJUMP))) { animator.SetBool("wallJump", true); animator.SetBool("walk", false); spriteRenderer.flipX = true; } // Activate Friction: if (collidersLeft.Length > 0 || collidersRight.Length > 0) { rb.sharedMaterial = WallJumpSlideMaterial; } else { rb.sharedMaterial = null; } //Activate wall jump: if (!isWallJumping && canWallJump && Input.GetKeyDown(KeyCode.Space)) { //Go ahead and jump isWallJumping = true; isJumpingFromRight = collidersRight.Length > 0; isJumpingFromLeft = collidersLeft.Length > 0; Invoke("StopWallJump", 0.15f); } if (isWallJumping) { //animator.SetBool("wallJump", true); if (isJumpingFromRight) { rb.velocity = new Vector2(-15, 10); } else { rb.velocity = new Vector2(15, 10); } } if (Input.GetKeyDown(KeyCode.S) && skillController.hasSkill(Skills.SNAKE)) { this.isSnake = !isSnake; animator.SetBool("isSnake", isSnake); animator.SetTrigger("snake"); } }
public override IEntityCallbackUser CreateController() { SlashController c = SelfTypeCreatorFactory <EntityController> .Create <SlashController>(); return(c); }
public override void initialize() { attackType = AttackType.Combo; eventHandler = GameManager.playerAnimator.gameObject.GetComponent<AnimationEventBroadcast>(); eventHandler.subscribe(this); stick = GameManager.player.GetComponent<PlayerController>().weapon.GetComponentInChildren<Collider>(); leg = GameManager.player.GetComponent<PlayerController> ().playerLegObject.GetComponent<Collider> (); fist = GameManager.player.GetComponent<PlayerController> ().playerFistObject.GetComponent<Collider> (); attackColliderStick = GameManager.player.GetComponent<PlayerController>().weapon.GetComponentInChildren<AttackCollider>(); attackColliderLeg = GameManager.player.GetComponent<PlayerController> ().playerLegObject.GetComponent<AttackCollider> (); attackColliderFist = GameManager.player.GetComponent<PlayerController> ().playerFistObject.GetComponent<AttackCollider> (); weaponEffects = GameManager.player.GetComponent<PlayerController>().weapon.GetComponentInChildren<Xft.XWeaponTrail>(); slashController = GameManager.player.GetComponent<PlayerController>().weapon.GetComponentInChildren<SlashController>(); enemiesHit = new List<GameObject> (0); //weaponEffects.StopSmoothly(0.1f); }