Ejemplo n.º 1
0
    public void InitDOT(GameObject user, GameObject victim, Ability ability)
    {
        Vector3 victimPos = new Vector3(victim.transform.position.x, victim.transform.position.y, 0);

        GameObject dot = GameObject.Instantiate(prefab, victimPos, Quaternion.identity) as GameObject;

        dot.name             = prefab.name;
        dot.transform.parent = victim.transform;

        DOTDamage dotScript = dot.GetComponent <DOTDamage>();

        Transform victimChild = victim.transform.FindChild(prefab.name);

        if (victimChild && victimChild != dot)
        {
            //  if (victimChild.name == prefab.name)
            // dotScript.DestroyGameObject(victimChild.gameObject);
        }
        dotScript.User     = user;
        dotScript.Victim   = victim;
        dotScript.Duration = effectDuration;
        dotScript.Action();
        temp = 0;
        Job.make(DOT(user, dotScript));
    }
Ejemplo n.º 2
0
    private IEnumerator DOT(GameObject user, DOTDamage dotScript)
    {
        durationTimer.Start();
        while (durationTimer.IsRunning && durationTimer.Elapsed.TotalSeconds <= damageTickDuration)
        {
            yield return(null);
        }

        dotScript.Damage(effectDamage);
        temp += damageTickDuration;

        durationTimer.Stop();
        durationTimer.Reset();


        if (effectDuration > temp)
        {
            Job.make(DOT(user, dotScript));
        }

        yield break;
    }