Ejemplo n.º 1
0
    IEnumerator AddEffectVorDuration(OnHitEffect onHitEffect, float duration)
    {
        currentHitEffects.Add(onHitEffect);
        yield return(new WaitForSeconds(duration));

        // Code to execute after the delay
        currentHitEffects.Remove(onHitEffect);
    }
Ejemplo n.º 2
0
    public OnHitEffect.DamageBehaviour GetOnHitEffect()
    {
        /// Debug.LogError(onHitEffectName);
        if (onHitEffectName == "" || onHitEffectName == null)
        {
            return(DefaultDamageBehaviour);
        }

        System.Runtime.Remoting.ObjectHandle handle = System.Activator.CreateInstance(null, onHitEffectName);
        OnHitEffect onHitEffect = handle.Unwrap() as OnHitEffect;

        return(onHitEffect.GetOnHitEffectBehaviour());
    }
Ejemplo n.º 3
0
    public static void Attach(GameObject obj)
    {
        if (!obj)
        {
            return;
        }

        OnHitEffect effect = obj.GetComponent <OnHitEffect>();

        if (effect)
        {
            effect.Reset();
        }
        else
        {
            obj.AddComponent <OnHitEffect>();
        }
    }
Ejemplo n.º 4
0
    IEnumerator EnableEffect(OnHitEffect effect, ParticleSystem particle, float currentWeaknessMultiplier)
    {
        particle.gameObject.SetActive(true);
        animator.SetFloat("WalkingSpeedMultiplier", currentWeaknessMultiplier);
        if (effect.onHitEffectType == OnHitEffectType.Freeze)
        {
            freezed = true;
        }
        float timeSum = 0;

        while (timeSum < effect.effectTime)
        {
            timeSum += Time.deltaTime;

            float damage = effect.damageOverTime / effect.effectTime * Time.deltaTime;
            DamageEnemy(damage, currentWeaknessMultiplier, true);
            yield return(null);
        }
        //yield return new WaitForSeconds(effect.effectTime);
        animator.SetFloat("WalkingSpeedMultiplier", 1f);
        freezed = false;
        particle.gameObject.SetActive(false);
    }
Ejemplo n.º 5
0
 public void AddEffect(OnHitEffect onHitEffect, float duration)
 {
     StartCoroutine(AddEffectVorDuration(onHitEffect, duration));
 }