Exemplo n.º 1
0
    public bool OnCombine(bool isMain)
    {
        if (isMain)
        {
            type = Util.getGenerateType(type);
            GameObject fakeMask = GameObject.Instantiate(this.gameObject, this.transform.position, this.transform.rotation, this.transform);
            fakeMask.GetComponent <Element> ().onFly               = false;
            fakeMask.transform.localPosition                       = Vector3.zero;
            fakeMask.transform.localScale                          = Vector3.one;
            fakeMask.GetComponent <Element>().fakeMaskScale        = 10f;
            fakeMask.GetComponent <SpriteRenderer> ().sortingOrder = 5;
            fakeMask.GetComponent <Element> ().FadeOut(delay: 1f);
            Destroy(fakeMask, destoryTime);
            GetComponent <SpriteRenderer>().sprite = Util.getElementSprite(type);
            //anim
        }
        else
        {
            afterFly = AfterFly.combine;
            Destroy(this.gameObject, destoryTime);
            //anim
        }
        //Debug.Log ("onCombine "+isMain);

        return(true);
    }
Exemplo n.º 2
0
    public bool OnKill(bool isMain = false)
    {
        if (isMain)
        {
            afterFly = AfterFly.explo;
            //anim(attacker)
        }
        else
        {
            //MoveTo (Vector3.zero, 1f, true);
            afterFlyTimer = -1f;
            afterFly      = AfterFly.explo;
            killCircle.transform.localPosition = Vector3.zero;
            GameObject.Instantiate(killCircle, this.transform);
            //anim
        }
        //Debug.Log ("onkill");
        Destroy(this.gameObject, destoryTime);

        return(true);
    }
Exemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        if (onFly)
        {
            if (timer < flyTime)
            {
                timer += Time.deltaTime;
            }
            else
            {
                this.GetComponent <SpriteRenderer> ().sortingOrder = 2;
                timer      = flyTime;
                onFly      = false;
                onAfterFly = true;
            }
            if (timer >= 0)
            {
                this.transform.position = Vector3.Lerp(srcPos, tarPos, timer / flyTime);
            }
        }
        if (onFade)
        {
            if (fadeTimer < fadeTime)
            {
                fadeTimer += Time.deltaTime;
            }
            else
            {
                fadeTimer = fadeTime;
                onFade    = false;
            }
            if (fadeTimer >= 0)
            {
                if (onFinish)
                {
                    finishCircle.transform.position = this.transform.position;
                    GameObject.Instantiate(finishCircle);
                    onFinish = false;
                }
                this.GetComponent <SpriteRenderer> ().color = new Color(1, 1, 1, 1 - fadeTimer / fadeTime);
                this.transform.Rotate(new Vector3(0, 0, 15) * Time.deltaTime);
                this.transform.localScale = Vector3.Lerp(new Vector3(0.1f * fakeMaskScale, 0.1f * fakeMaskScale, 1), new Vector3(0.03f * fakeMaskScale, 0.03f * fakeMaskScale, 1), fadeTimer / fadeTime);
            }
        }
        if (onAfterFly)
        {
            if (afterFlyTimer < afterFlyTime)
            {
                afterFlyTimer += Time.deltaTime;
            }
            else
            {
                afterFlyTimer = afterFlyTime;
                //onFade = false;
            }
            if (afterFlyTimer >= 0)
            {
                switch (afterFly)
                {
                case AfterFly.explo:
                    this.GetComponent <SpriteRenderer> ().color = new Color(1, 1, 1, 1 - afterFlyTimer / afterFlyTime);
                    this.transform.localScale = (Vector3.one + new Vector3(1, 1, 0) * afterFlyTimer / afterFlyTime * 0.5f) * 0.1f;
                    break;

                case AfterFly.combine:
                    this.FadeOut();
                    afterFly = AfterFly.idle;
                    break;

                default:
                    break;
                }
            }
        }
    }