public override void UpdateSkillActivation(ItemSkill SourceItemSkill, float CurrentActivationTime, bool StillActivating, bool ActivationIntervallReached) { if (CurrentActivationTime < ActivationTime) { return; } if (!SourceItemSkill.GetEffectOnlyOnceBool(0)) { SourceItemSkill.SetEffectOnlyOnceBool(0, true); for (int i = 0; i < EffectsStart.Length; i++) { EffectsStart[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); } SourceItemSkill.GetCurrentOwner().StartAnimation(IdleAnimation, 1, SourceItemSkill.GetParentItemEquipmentSlot()); } if (ActivationIntervallReached) { ApplyEffects(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); var audioSource = SourceItemSkill.GetComponent <AudioSource>(); if (ChanellingSound) { audioSource.clip = ChanellingSound; audioSource.loop = true; audioSource.Play(); } } if (!StillActivating || (ActivationTimeMax > 0 && CurrentActivationTime >= ActivationTimeMax)) { for (int i = 0; i < EffectsEnd.Length; i++) { EffectsEnd[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); } SourceItemSkill.GetCurrentOwner().StartAnimation(ReleaseAnimation, 1, SourceItemSkill.GetParentItemEquipmentSlot()); // Stop Skill Activation: if (Cooldown > 0) { SourceItemSkill.SetCurrentCooldown(Cooldown); if (ChanellingSound) { SourceItemSkill.GetComponent <AudioSource>().Stop(); } } RemoveActivationMovementRateModifier(SourceItemSkill, SourceItemSkill.GetCurrentOwner()); SourceItemSkill.StoppedActivatingSkillWithHitObjects(this); SourceItemSkill.FinishedSkillActivation(); } }
public override void UpdateSkillActivation(ItemSkill SourceItemSkill, float CurrentActivationTime, bool StillActivating, bool ActivationIntervallReached) { if (CurrentActivationTime < ActivationTime) { return; } // Spawn and Initialize Projectile: SkillProjectile SpawnedProjectile = Instantiate(ProjectilePrefab, SourceItemSkill.transform.position, SourceItemSkill.GetCurrentOwner().transform.rotation); SpawnedProjectile.InitializeProjectile(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, this); if (ThrowSound) { var audioSource = SourceItemSkill.GetComponent <AudioSource>(); audioSource.clip = ThrowSound; audioSource.volume = 1; audioSource.loop = false; audioSource.Play(); } // Stop Skill Activation: if (Cooldown > 0) { SourceItemSkill.SetCurrentCooldown(Cooldown); } RemoveActivationMovementRateModifier(SourceItemSkill, SourceItemSkill.GetCurrentOwner()); SourceItemSkill.StoppedActivatingSkillWithHitObjects(this); SourceItemSkill.FinishedSkillActivation(); }
public override bool StartSkillActivation(ItemSkill SourceItemSkill, Character Owner) { var result = base.StartSkillActivation(SourceItemSkill, Owner); if (result && ChargeUp) { var weaponAudioSource = SourceItemSkill.GetComponent <AudioSource>(); weaponAudioSource.clip = ChargeUp; weaponAudioSource.Play(); } return(result); }
public override void UpdateSkillActivation(ItemSkill SourceItemSkill, float CurrentActivationTime, bool StillActivating, bool ActivationIntervallReached) { if (CurrentActivationTime < ActivationTime) { return; } if (!SourceItemSkill.GetEffectOnlyOnceBool(0)) { SourceItemSkill.SetEffectOnlyOnceBool(0, true); SourceItemSkill.StopAllCoroutines(); if (ChanellingLoop) { var audioSource = SourceItemSkill.GetComponent <AudioSource>(); audioSource.clip = ChanellingLoop; audioSource.loop = true; audioSource.Play(); } SkillHitObject SpawnedHitObjectStart; for (int i = 0; i < EffectsStart.Length; i++) { EffectsStart[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); } for (int i = 0; i < AtStartHitObjectPrefabs.Length; i++) { // Spawn and Initialize Projectile: SpawnedHitObjectStart = Instantiate(AtStartHitObjectPrefabs[i], SourceItemSkill.transform.position, SourceItemSkill.GetCurrentOwner().transform.rotation); SpawnedHitObjectStart.InitializeHitObject(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, this, UseSkillLevelAtActivationMoment); } SourceItemSkill.GetCurrentOwner().StartAnimation(IdleAnimation, 1, SourceItemSkill.GetParentItemEquipmentSlot()); } if (ActivationIntervallReached) { ApplyEffects(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); SkillHitObject SpawnedHitObjectIntervall; for (int i = 0; i < IntervallHitObjectPrefabs.Length; i++) { // Spawn and Initialize Projectile: SpawnedHitObjectIntervall = Instantiate(IntervallHitObjectPrefabs[i], SourceItemSkill.transform.position, SourceItemSkill.GetCurrentOwner().transform.rotation); SpawnedHitObjectIntervall.InitializeHitObject(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, this, UseSkillLevelAtActivationMoment); } } if (!StillActivating || (ActivationTimeMax > 0 && CurrentActivationTime >= ActivationTimeMax)) { for (int i = 0; i < EffectsEnd.Length; i++) { EffectsEnd[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); } var audioSource = SourceItemSkill.GetComponent <AudioSource>(); SourceItemSkill.StopAllCoroutines(); if (ChanellingRelease) { audioSource.clip = ChanellingRelease; audioSource.loop = false; audioSource.Play(); } else { SourceItemSkill.StartCoroutine(FadeSoundOutAndStop(audioSource, .3f)); } SkillHitObject SpawnedHitObjectEnd; for (int i = 0; i < AtEndHitObjectPrefabs.Length; i++) { // Spawn and Initialize Projectile: SpawnedHitObjectEnd = Instantiate(AtEndHitObjectPrefabs[i], SourceItemSkill.transform.position, SourceItemSkill.GetCurrentOwner().transform.rotation); SpawnedHitObjectEnd.InitializeHitObject(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, this, UseSkillLevelAtActivationMoment); } SourceItemSkill.GetCurrentOwner().StartAnimation(ReleaseAnimation, 1, SourceItemSkill.GetParentItemEquipmentSlot()); // Stop Skill Activation: if (Cooldown > 0) { SourceItemSkill.SetCurrentCooldown(Cooldown); } RemoveActivationMovementRateModifier(SourceItemSkill, SourceItemSkill.GetCurrentOwner()); SourceItemSkill.StoppedActivatingSkillWithHitObjects(this); SourceItemSkill.FinishedSkillActivation(); } }
public override void UpdateSkillActivation(ItemSkill SourceItemSkill, float CurrentActivationTime, bool StillActivating, bool ActivationIntervallReached) { if (CurrentActivationTime < ActivationTime) { return; } if (!SourceItemSkill.GetEffectOnlyOnceBool(0)) { SourceItemSkill.SetEffectOnlyOnceBool(0, true); for (int i = 0; i < EffectsSelfOnMinimumActivationTimeEnd.Length; i++) { EffectsSelfOnMinimumActivationTimeEnd[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); } } if (!StillActivating || (ChargeUpTimeMax > 0 && CurrentActivationTime >= ChargeUpTimeMax)) { if (!SourceItemSkill.GetEffectOnlyOnceBool(1)) { float TimeAfterRelease = AfterReleaseActivationTime; if (ScaleAfterReleaseTimeWithChannelTime) { float TimePerc = Mathf.Clamp01((CurrentActivationTime - MinTime) / (MaxTime - MinTime)); TimeAfterRelease = TimeAfterRelease * Mathf.Lerp(MinModifier, MaxModifier, TimePerc); } SourceItemSkill.SetEffectFloat(CurrentActivationTime + TimeAfterRelease); SourceItemSkill.GetCurrentOwner().StartAnimation(ReleaseAnimation, TimeAfterRelease, SourceItemSkill.GetParentItemEquipmentSlot()); SourceItemSkill.StartSkillCurrentlyUsingItemHitBox(HitEachCharacterOnlyOnce); for (int i = 0; i < EffectsSelfOnRelease.Length; i++) { EffectsSelfOnRelease[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); } if (ChargeRelease) { var weaponAudioSource = SourceItemSkill.GetComponent <AudioSource>(); weaponAudioSource.Stop(); weaponAudioSource.clip = ChargeRelease; weaponAudioSource.Play(); } } SourceItemSkill.SetEffectOnlyOnceBool(1, true); } if (SourceItemSkill.GetEffectOnlyOnceBool(1) && CurrentActivationTime >= SourceItemSkill.GetEffectFloat()) { for (int i = 0; i < EffectsSelfOnEnd.Length; i++) { EffectsSelfOnEnd[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); } // Stop Skill Activation: if (Cooldown > 0) { SourceItemSkill.SetCurrentCooldown(Cooldown); } SourceItemSkill.EndSkillCurrentlyUsingItemHitBox(); RemoveActivationMovementRateModifier(SourceItemSkill, SourceItemSkill.GetCurrentOwner()); SourceItemSkill.FinishedSkillActivation(); } /* * if (!SourceItemSkill.GetEffectOnlyOnceBool()) * { * SourceItemSkill.SetEffectOnlyOnceBool(true); * * for (int i = 0; i < EffectsStart.Length; i++) * { * EffectsStart[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); * } * } * // Maybe not: * if (ActivationIntervallReached) * { * ApplyEffects(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); * } * * if (!StillActivating || (ActivationTimeMax > 0 && CurrentActivationTime >= ActivationTimeMax)) * { * for (int i = 0; i < EffectsEnd.Length; i++) * { * EffectsEnd[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); * } * * // Stop Skill Activation: * SourceItemSkill.FinishedSkillActivation(); * SourceItemSkill.EndSkillCurrentlyUsingItemHitBox(); * }*/ }