Exemplo n.º 1
0
    public override IEnumerator Die()
    {
        RagnarosSubmergeAttack skill = ((Ragnaros)speller).skillManager.GetSkillByName("RagnarosSubmergeAttack") as RagnarosSubmergeAttack;

        skill.Float(((Ragnaros)speller).animator);
        AC.CrossFade("Death [12] 0", 0.1f);
        yield return(new WaitForSeconds(2));

        GameObject[]   objects = GameController.Register.RightHero.HeroRegister.GetAllGameItems();
        RagnarosDamage damage  = new RagnarosDamage(50, DamageType.Fire, gameObject.layer);

        foreach (GameObject gObject in objects)
        {
            if (gObject.GetComponent <State>() != null)
            {
                gObject.GetComponent <State>().TakeSkillContent(damage);
            }
        }
        GameObject go_ = Instantiate(explosion, null);

        go_.transform.position = gameObject.transform.position - new Vector3(0, 0.7f, 0);
        //Destroy(gameObject);
        DestoryByPool(this);
    }
Exemplo n.º 2
0
    IEnumerator Walk()
    {
        if (target == null)
        {
            StartCoroutine(Die());
        }
        if (Vector3.Distance(gameObject.transform.position, target.transform.position) >= 1f)
        {
            yield return(new WaitForEndOfFrame());

            if (Physics.Raycast(new Ray(transform.position, -transform.up), 0.9f))
            {
                Vector3 v = target.transform.position;
                v.y = gameObject.transform.position.y;
                gameObject.transform.LookAt(v);
                gameObject.transform.Rotate(new Vector3(0, 90, 0));
                // CC.Move((Suf.transform.position - gameObject.transform.position).normalized * Time.deltaTime * speed);
                transform.position += (target.transform.position - gameObject.transform.position).normalized * Time.deltaTime * speed;
                //gameObject.transform.position += (Suf.transform.position - gameObject.transform.position).normalized * Time.deltaTime * speed;
            }
            else
            {
                AC.CrossFade("Fly", 0f);
            }
            StartCoroutine(Walk());
        }
        else
        {
            GetComponent <AudioSource>().Play();
            RagnarosSubmergeAttack skill = ((Ragnaros)speller).skillManager.GetSkillByName("RagnarosSubmergeAttack") as RagnarosSubmergeAttack;
            skill.Float(((Ragnaros)speller).animator);
            GameObject go = Instantiate(Explosion, null);
            renderer.enabled = false;
            GameObject[] objects = GameController.Register.RightHero.HeroRegister.GetAllGameItems();
            int          num     = 0;
            foreach (GameObject gObject in objects)
            {
                if (gObject.GetComponent <State>() != null)
                {
                    num++;
                }
            }
            float damageVal = 1000 / num;
            if (damageVal > 250)
            {
                damageVal = 250;
            }
            RagnarosDamage damage = new RagnarosDamage(damageVal, DamageType.Fire, gameObject.layer);
            foreach (GameObject gObject in objects)
            {
                if (gObject.GetComponent <State>() != null)
                {
                    gObject.GetComponent <State>().TakeSkillContent(damage);
                }
            }
            go.transform.position = target.transform.position + new Vector3(0, 0.3f, 0);
            go.GetComponent <ParticleSystemMultiplier>().multiplier = 1f;
            yield return(new WaitForSeconds(1.2f));

            DestoryByPool(this);
        }
    }