public override void UpdateSkillActivation(ItemSkill SourceItemSkill, float CurrentActivationTime, bool StillActivating, bool ActivationIntervallReached) { if (CurrentActivationTime < ActivationTime) { return; } // Spawn and Initialize Projectile: SkillHitObject SpawnedHitObject = Instantiate(HitObjectPrefab, SourceItemSkill.transform.position, SourceItemSkill.GetCurrentOwner().transform.rotation); if (SpawnSound) { var audioSource = SpawnedHitObject.gameObject.GetComponent <AudioSource>(); if (!audioSource) { audioSource = SpawnedHitObject.gameObject.AddComponent <AudioSource>(); } audioSource.clip = SpawnSound; if (LoopSound) { audioSource.loop = LoopSound; SpawnedHitObject.FadeSound = true; SpawnedHitObject.StartCoroutine(FadeAudioIn(audioSource, .5f)); } else { audioSource.Play(); } } SpawnedHitObject.InitializeHitObject(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, this, UseSkillLevelAtActivationMoment); // Stop Skill Activation: if (Cooldown > 0) { SourceItemSkill.SetCurrentCooldown(Cooldown); } RemoveActivationMovementRateModifier(SourceItemSkill, SourceItemSkill.GetCurrentOwner()); SourceItemSkill.StoppedActivatingSkillWithHitObjects(this); SourceItemSkill.FinishedSkillActivation(); }