Ejemplo n.º 1
0
 void setupGeneral()
 {
     transform.localScale = new Vector3(0, 0, 0);
     pairedLoot           = null;
 }
Ejemplo n.º 2
0
 public void selectLoot(LootRewardOpenGO lootGO)
 {
     manager.selectLoot(lootGO.card, lootGO.moneyVal);
 }
Ejemplo n.º 3
0
    IEnumerator doAnimation()
    {
        doingAnimation             = true;
        transform.localEulerAngles = new Vector3(0, 0, 0);

        endGameInterface.topText.text = "";

        float timer = 0;

        //move to the center
        Vector3 startPos   = transform.position;
        float   startScale = transform.localScale.x;

        while (timer < slideTime && !skipAnimationFlag)
        {
            timer += Time.deltaTime;
            float prc = timer / slideTime;
            transform.position   = Vector3.Lerp(startPos, centerPos, prc);
            transform.localScale = new Vector3(1, 1, 1) * Mathf.Lerp(startScale, bigScale, prc);
            yield return(null);
        }

        if (!skipAnimationFlag)
        {
            yield return(new WaitForSeconds(pauseTimeBetweenAnimSteps));
        }

        //shake a bit
        float shakePhaseTime = shakeTime / 3;

        timer = 0;
        while (timer < shakeTime && !skipAnimationFlag)
        {
            timer += Time.deltaTime;

            float relativeTime = timer + shakePhaseTime / 2;
            int   curPhase     = Mathf.FloorToInt(relativeTime / shakePhaseTime);
            float curPhaseTime = relativeTime - curPhase * shakePhaseTime;

            float prc = (curPhaseTime / shakePhaseTime) * 2 - 1;
            if (curPhase % 2 == 0)
            {
                prc *= -1;
            }

            float angle = 30 * prc;
            transform.localEulerAngles = new Vector3(0, 0, angle);

            yield return(null);
        }

        if (!skipAnimationFlag)
        {
            yield return(new WaitForSeconds(pauseTimeBetweenAnimSteps));
        }

        //change the top text
        endGameInterface.topText.text = "You get $" + reward.baseMoney + " + select one";


        //spawn the rewards
        for (int i = 0; i < reward.cardGroups.Count; i++)
        {
            float prc = (float)i / (float)(reward.cardGroups.Count);
            LootRewardOpenGO[] rewards = new LootRewardOpenGO[reward.cardGroups[i].Count];
            for (int c = 0; c < reward.cardGroups[i].Count; c++)
            {
                rewards [c] = Instantiate(openLootPrefab, transform.position, Quaternion.identity).GetComponent <LootRewardOpenGO> ();
                rewards[c].setup(reward.cardGroups[i][c], prc, c, endGameInterface);
            }
            //if it was a set of two, pair them
            if (rewards.Length == 2)
            {
                rewards [0].pairedLoot = rewards [1];
                rewards [1].pairedLoot = rewards [0];
            }
        }
        Instantiate(openLootPrefab, transform.position, Quaternion.identity).GetComponent <LootRewardOpenGO> ().setup(reward.moneyOption, endGameInterface);



        //shrink down
        timer      = 0;
        startScale = transform.localScale.x;
        while (timer < slideTime && !skipAnimationFlag)
        {
            timer += Time.deltaTime;
            float prc = timer / slideTime;
            transform.localScale = new Vector3(1, 1, 1) * Mathf.Lerp(startScale, 0, prc);
            yield return(null);
        }

        //we're done!
        isActive = false;
        gameObject.SetActive(false);
        doingAnimation = false;
    }