private void GlideCancel() { Debug.Log("Cancel Glide"); isGliding = false; if (aEntity.terminalVels.Contains(currentTerminal)) { aEntity.terminalVels.Remove(currentTerminal); } currentTerminal = null; }
public override void Cancel() { base.Cancel(); if (currentTerminal != null) { aEntity.terminalVels.Remove(currentTerminal); currentTerminal = null; aEntity.lockFlip = false; } }
private void PGlide() { Debug.Log("Glide"); isGliding = true; if (aEntity.terminalVels.Contains(currentTerminal)) { aEntity.terminalVels.Remove(currentTerminal); } LivingEntity.TerminalVel term = new LivingEntity.TerminalVel(glideSpeed); currentTerminal = term; aEntity.terminalVels.Add(term); }
public override void AbilityUpdate() { base.AbilityUpdate(); if (AbilityActivated) { if (lockOutTimer <= 0) { PWallJumpSensor(); } } else { if (currentTerminal != null) { if (currentTerminal != null) { aEntity.terminalVels.Remove(currentTerminal); currentTerminal = null; } } } }
private void PWallJumpSensor() { float rayLength = aEntity.entityBC2D.size.x / 2 + wallJumpRayLength; Vector2 wallJumpRayDir = Vector2.right; if (!aEntity.isLookingRight) { wallJumpRayDir = Vector2.left; } if (!aEntity.IsGrounded) { Vector3 topOrigin = new Vector3(sensorPosition.position.x, sensorPosition.position.y + sensorGap, sensorPosition.position.z); Vector3 botOrigin = new Vector3(sensorPosition.position.x, sensorPosition.position.y - sensorGap, sensorPosition.position.z); bool topRight = Physics2D.Raycast(topOrigin, Vector2.right, rayLength, wallJumpMask); bool botRight = Physics2D.Raycast(botOrigin, Vector2.right, rayLength, wallJumpMask); bool topLeft = Physics2D.Raycast(topOrigin, Vector2.left, rayLength, wallJumpMask); bool botLeft = Physics2D.Raycast(botOrigin, Vector2.left, rayLength, wallJumpMask); bool isOnWall = false; if (topRight || botRight || topLeft || botLeft) { if (aEntity.isLookingRight && (topRight || botRight)) { if (aEntity.EntityFlip()) { aEntity.lockFlip = true; } } if (!aEntity.isLookingRight && (topLeft || botLeft)) { if (aEntity.EntityFlip()) { aEntity.lockFlip = true; } } isOnWall = true; } if (isOnWall) { onWallCling?.Invoke(); /* * if (!CanCast) * { * onWallCling?.Invoke(); * } */ CanActivate = true; if (currentTerminal == null) { aEntity.terminalVels.Remove(currentTerminal); LivingEntity.TerminalVel term = new LivingEntity.TerminalVel(wallFallSpeed); currentTerminal = term; aEntity.terminalVels.Add(term); } } else { CanActivate = false; aEntity.lockFlip = false; if (currentTerminal != null) { aEntity.terminalVels.Remove(currentTerminal); currentTerminal = null; } } } else { CanActivate = false; aEntity.lockFlip = false; if (currentTerminal != null) { aEntity.terminalVels.Remove(currentTerminal); currentTerminal = null; } } Debug.DrawRay(new Vector3(sensorPosition.position.x, sensorPosition.position.y + sensorGap, sensorPosition.position.z), wallJumpRayDir * rayLength, Color.cyan); Debug.DrawRay(new Vector3(sensorPosition.position.x, sensorPosition.position.y - sensorGap, sensorPosition.position.z), wallJumpRayDir * rayLength, Color.cyan); Debug.DrawRay(new Vector3(sensorPosition.position.x, sensorPosition.position.y + sensorGap, sensorPosition.position.z), -wallJumpRayDir * rayLength, Color.cyan); Debug.DrawRay(new Vector3(sensorPosition.position.x, sensorPosition.position.y - sensorGap, sensorPosition.position.z), -wallJumpRayDir * rayLength, Color.cyan); }