public override void Execute(AbilityParameters parameters) { Vector3 axisInput = parameters.heldDirection; if (!trackX) { axisInput.x = 0; } if (!trackY) { axisInput.y = 0; } if (axisInput == Vector3.zero) { if (currentSpeed > 0) { currentSpeed -= moveAccel; currentSpeed = Mathf.Clamp(currentSpeed, 0, Mathf.Infinity); } } else { currentSpeed += moveAccel; currentSpeed = Mathf.Clamp(currentSpeed, 0, maxSpeed); lastDirection = axisInput; parameters.origin.right = axisInput; } isRunning = axisInput != Vector3.zero; Vector3 movement = parameters.origin.right * currentSpeed; parameters.origin.GetComponent <Rigidbody>().MovePosition(parameters.origin.position + movement * Time.deltaTime); }
public override void Execute(AbilityParameters parameters) { base.Execute(parameters); if (canActivate && parameters.heldButton) { Vector3 calcOffset = parameters.origin.position + (Mathf.Sign(parameters.origin.right.x) * weaponOffset); GameObject newProj = Instantiate(weapon, calcOffset, Quaternion.identity, parameters.origin); currentActivationRate = activationRate; } }
public override void Execute(AbilityParameters parameters) { base.Execute(parameters); if (canActivate && parameters.heldButton) { GameObject newProj = Instantiate(projectile, parameters.origin.position, Quaternion.identity); newProj.transform.right = parameters.origin.right; newProj.layer = parameters.origin.gameObject.layer; currentActivationRate = activationRate; } }
public override void UpdateAbility(AbilityParameters parameters = null) { base.UpdateAbility(parameters); Ray groundRay = new Ray(parameters.origin.position, -parameters.origin.transform.up); if (Physics.Raycast(groundRay, groundRayLength, groundLayers) && jumping) { jumping = false; } isRunning = jumping; }
public override void UpdateAbility(AbilityParameters parameters = null) { base.UpdateAbility(parameters); if (currentFloatTime > 0) { parameters.origin.GetComponent <Rigidbody>().velocity = Vector3.zero; currentFloatTime -= Time.deltaTime; } parameters.origin.GetComponent <ConstantForce>().enabled = currentFloatTime <= 0; parameters.origin.GetComponent <Rigidbody>().isKinematic = currentFloatTime > 0; if (!canDash) { Ray groundRay = new Ray(parameters.origin.position, -parameters.origin.up); canDash = Physics.Raycast(groundRay, groundRayLength, groundLayers); } Debug.Log(dashTween == null); }
public override void Execute(AbilityParameters parameters) { if (parameters.heldButton) { parameters.origin.GetComponent <Rigidbody>().AddForce(parameters.origin.up * currentJumpStrength, ForceMode.VelocityChange); currentJumpStrength -= jumpFalloff; if (currentJumpStrength < 0f) { currentJumpStrength = 0; } } else { Ray groundRay = new Ray(parameters.origin.position, -parameters.origin.transform.up); if (Physics.Raycast(groundRay, groundRayLength, groundLayers)) { currentJumpStrength = jumpStrength; } } }
public override void Execute(AbilityParameters parameters) { base.Execute(parameters); if (canActivate && parameters.heldButton) { Collider[] targets = Physics.OverlapSphere(parameters.origin.position, maxDashDistance, validTargetLayers); if (targets.Length > 0) { GameObject dashTarget = null; float shortDist = maxDashDistance; foreach (Collider target in targets) { float targetDist = Vector3.Distance(parameters.origin.position, target.transform.position); float facing = Mathf.Sign(parameters.origin.right.x); float dir = Mathf.Sign((target.transform.position - parameters.origin.position).x); if (targetDist <= shortDist && facing == dir) { shortDist = Vector3.Distance(parameters.origin.position, target.transform.position); dashTarget = target.gameObject; } } if (dashTarget) { DashTowards(parameters.origin, dashTarget.transform.position); } else { Vector3 location = parameters.origin.position + (parameters.heldDirection * maxDashDistance); Dash(parameters.origin, location); } } else { Vector3 location = parameters.origin.position + (parameters.heldDirection * maxDashDistance); Dash(parameters.origin, location); } } }
public virtual void UpdateAbility(AbilityParameters parameters = null) { UpdateActivationRate(); }
public virtual void Execute(AbilityParameters parameters) { }