protected override void OnCast() { InstantiatedAbility instance = Instantiate(this.instantiatedAbility, this.transform.position, this.transform.rotation); this.instantiateAbilityListeners.ForEach((listener) => listener.OnInstantiateAbility(instance)); instance.OnInstantiated(this); }
public void OnInstantiateAbility(InstantiatedAbility instantiatedAbility) { Rigidbody rigidbody = instantiatedAbility.GetComponent <Rigidbody>(); if (!rigidbody) { return; } rigidbody.velocity = (this.transform.forward + this.addedDirection).normalized * this.speed * this.GetCastTimeMultiplier(); }
public void OnInstantiateAbility(InstantiatedAbility instantiatedAbility) { Rigidbody rigidbody = instantiatedAbility.GetComponent <Rigidbody>(); if (!rigidbody) { return; } Vector3 impulseVector = (this.transform.forward + this.addedDirection).normalized * this.impulse * this.GetCastTimeMultiplier(); rigidbody.AddForce(impulseVector); if (this.recoilEffect != 0f) { this.playerCastInstantiateAbility.abilityManager.player.GetRigidbody().AddForce(impulseVector * -1f * this.recoilEffect); } }
private void Awake() { this.attachOnImpact = this.GetComponent <AttachOnImpact>(); this.instantiatedAbility = this.GetComponent <InstantiatedAbility>(); this.lineRenderer = this.GetComponent <LineRenderer>(); }
public void OnInstantiateAbility(InstantiatedAbility instantiatedAbility) { instantiatedAbility.transform.position += this.transform.right * this.offset.x; instantiatedAbility.transform.position += this.transform.up * this.offset.y; instantiatedAbility.transform.position += this.transform.forward * this.offset.z; }