public override void UpdateSkillActivation(ItemSkill SourceItemSkill, float CurrentActivationTime, bool StillActivating, bool ActivationIntervallReached) { if (CurrentActivationTime >= HitTimeStart && CurrentActivationTime <= HitTimeStop) { if (!SourceItemSkill.CheckIfSkillIsUsingHitBox(SourceItemSkill)) { SourceItemSkill.StartSkillCurrentlyUsingItemHitBox(HitEachCharacterOnlyOnce, MaxHittableCharacters); } } else if (SourceItemSkill.CheckIfSkillIsUsingHitBox(SourceItemSkill)) { SourceItemSkill.EndSkillCurrentlyUsingItemHitBox(); } if (CheckForAnimationTrigger) { if (SourceItemSkill.GetCurrentOwner().GetHand(0).TriggerActivateEffect(0)) { for (int i = 0; i < EffectsOnSelfOnAnimationTrigger.Length; i++) { EffectsOnSelfOnAnimationTrigger[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); } } if (SourceItemSkill.GetCurrentOwner().GetHand(0).TriggerActivateEffect(1)) { for (int i = 0; i < EffectsOnSelfOnAnimationTrigger2.Length; i++) { EffectsOnSelfOnAnimationTrigger2[i].ApplyEffect(SourceItemSkill.GetCurrentOwner(), SourceItemSkill, SourceItemSkill.GetCurrentOwner()); } } } if (CurrentActivationTime >= ActivationTime) { // Stop Skill Activation: if (Cooldown > 0) { SourceItemSkill.SetCurrentCooldown(Cooldown); } RemoveActivationMovementRateModifier(SourceItemSkill, SourceItemSkill.GetCurrentOwner()); SourceItemSkill.EndSkillCurrentlyUsingItemHitBox(); 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(); * }*/ }