Exemplo n.º 1
0
    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();
        }
    }
Exemplo n.º 2
0
    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();
         * }*/
    }