Ejemplo n.º 1
0
    void Update()
    {
        if (ReadyAgain)
        {
            Rand = Random.Range(triggerMin, triggerMax);

            if (Rand == 1)
            {
                IRSceneShiftTrigger temp           = Instantiate(SkySceneTrigger, this.transform.position, Quaternion.identity) as IRSceneShiftTrigger;
                GameObject          currentPowerUp = GameObject.FindGameObjectWithTag("PowerUp");
                if (currentPowerUp != null)
                {
                    if (Vector3.Distance(currentPowerUp.transform.position, temp.gameObject.transform.position) < 3)
                    {
                        Destroy(currentPowerUp);
                    }
                }
                temp.targetScene = IRSceneShiftTrigger.IRScene.SKY;
                temp.lifeSpan    = Random.Range(minTime, maxTime);
            }
            else if (Rand == 2)
            {
                if ((groundParallex.currentPatching == 0 && groundParallex.temp == 0))
                {
                    IRSceneShiftTrigger temp = Instantiate(WaterSceneTrigger, groundParallex._clone.transform.position, Quaternion.identity) as IRSceneShiftTrigger;
                    temp.targetScene = IRSceneShiftTrigger.IRScene.WATER;
                    temp.lifeSpan    = Random.Range(minTime, maxTime);
                    Invoke("ShiftToLandFromWater", temp.lifeSpan + 3.6f);
                    RefreshTime = temp.lifeSpan + 18;
                }
            }


            ReadyAgain = false;
            StartCoroutine("SetReadyAgain");
        }
    }
    void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.CompareTag("Hurdle"))
        {
            col.enabled = false;
            if (!QuestCompleted)
            {
                _animController.PlayAnimation("Hurt");
                TogglePlayerHit();
            }
            Handheld.Vibrate();
        }
        if (col.gameObject.CompareTag("PowerUp"))
        {
            if (ArabicSupport.ArabicFixer.Fix(GameManager.Instance.CurrentQuest.getNextLearningItem().letter, true, true).Equals(col.gameObject.GetComponent <PowerUp>().Text.text))
            {
                TogglePlayerCollectPowerUp();
            }
            SoundManager.Instance.PlaySoundOneShot(col.gameObject.GetComponent <PowerUp>().SoundName);
            Destroy(col.gameObject);
        }
        if (col.gameObject.CompareTag("QuestItem"))
        {
            PlayerCollectetQuestItem++;
            if (!GameManager.Instance.CurrentQuest.QuestItemCollected)
            {
                MainUIManager.Instance.inventoryController.Activate();
                MainUIManager.Instance.inventoryController.Populate(col.gameObject.GetComponent <SpriteRenderer> ().sprite, PlayerCollectetQuestItem);
            }
            ToggleQuestItemCollect();
            SoundManager.Instance.PlaySoundOneShot("QuestItemCollect");
            Destroy(col.gameObject);
        }

        if (col.gameObject.CompareTag("SceneTrigger"))
        {
            if (!QuestCompleted)
            {
                IRSceneShiftTrigger trigger = col.gameObject.GetComponent <IRSceneShiftTrigger> ();
                _rigidbody.isKinematic = true;
                _rigidbody.velocity    = Vector2.zero;
                if (trigger.targetScene == IRSceneShiftTrigger.IRScene.SKY)
                {
                    currentWorld    = 1;
                    isChangingWorld = true;
                    RunToFly();
                    _rigidbody.velocity = Vector3.zero;
                    currentLane         = "AirLane2";
                    _moveAction         = () => transform.position = Vector3.MoveTowards(transform.position, AirLane2.position, laneChangeSpeed * Time.deltaTime);
                    Destroy(col.gameObject);
                }
                else if (trigger.targetScene == IRSceneShiftTrigger.IRScene.WATER)
                {
                    _animController.CancelAnimationTrigger("Swim2Run");

                    currentWorld    = -1;
                    isChangingWorld = true;
                    LandtoWater();
                    currentLane = "WaterLane2";
                    _moveAction = () => transform.position = Vector3.MoveTowards(transform.position, WaterLane2.position, laneChangeSpeed * Time.deltaTime);
                    middleCollider.SetActive(false);
                    _rigidbody.velocity     = Vector3.zero;
                    _rigidbody.gravityScale = 0;
                    Destroy(col.gameObject, 2);
                }
                TogglePlayerCollectSceneTrigger(trigger.lifeSpan);
                SoundManager.Instance.PlaySoundOneShot("TriggerCollect");
            }
            else
            {
                Destroy(col.gameObject);
            }
        }
        if (col.gameObject.CompareTag("ShiftToLand"))
        {
            WaterToLand();
            _animController.CancelAnimationTrigger("RunToSwin");
        }
        if (col.gameObject.CompareTag("DisableSpawner"))
        {
        }
        if (col.gameObject.CompareTag("ApplyJumpForceTrigger"))
        {
            _animController.PlayAnimation("RunToSwin");
        }
        if (col.gameObject.CompareTag("ToLand"))
        {
            disableJump = false;
            groundParallex.ResetAllPosition();
            Invoke("EnableGroundParallex", 3f);
        }
        if (col.gameObject.CompareTag("ToWater"))
        {
            GameObject.FindObjectOfType <IRTriggerSpawner>().DisbaleGroundParallex();
        }
    }