コード例 #1
0
    void Start()
    {
        rb         = GetComponent <Rigidbody>();
        damageable = GetComponent <Damageable>();

        TeleportToCheckpoint();
        lastCheckpoint.Activate();
    }
コード例 #2
0
 public void SetCurrentActive(Checkpoint current)
 {
     activeCheckpoint = current;
     activeCheckpoint.Activate(true);
     foreach (Checkpoint checkpoint in checkpoints.FindAll(point => point != activeCheckpoint))
     {
         checkpoint.Activate(false);
     }
 }
コード例 #3
0
    private void MarkNewCheckpointAsActive(GameObject go)
    {
        Checkpoint cp = go.GetComponent <Checkpoint>();

        if (!cp.isActivated())
        {
            onNewCheckpointDiscovered();
            cp.Activate();
            lastCheckpointLocation = go.transform.position;
        }
    }
コード例 #4
0
    // Collision with new checkpoint
    void OnTriggerEnter2D(Collider2D collider)
    {
        string tag = collider.tag;



        if (tag == "Checkpoint")
        {
            Checkpoint checkpoint = collider.gameObject.GetComponent <Checkpoint>();

            if (!checkpoint.GetIsOn())
            {
                lastCheckpoint = collider.gameObject.GetComponent <Transform>().position;
                checkpoint.Activate();
            }
        }
        else if (tag == "Enemy" || tag == "Hazard")
        {
            RespawnPlayer();
        }
    }
コード例 #5
0
    void Update()
    {
        bool canSkipStep = currentStep < GameManager.puzzleStep[0];

        if (canSkipStep)
        {
            switch (currentStep)
            {
            case 0:
                gate.Complete();
                pressurePlates[0].setIsActivated(true);
                pressurePlates[1].setIsActivated(true);
                currentStep++;
                break;

            case 1:
                rock.Complete();
                shootingTarget.SetIsActivated(true);
                currentStep++;
                break;

            case 2:
                Destroy(part);
                currentStep++;
                break;

            case 3:
                fallingRock.Complete();
                currentStep++;
                break;

            case 4:
                Destroy(this);
                break;

            default: break;
            }
        }
        else
        {
            switch (currentStep)
            {
            case 0:
                if (AllPlatesActivated())
                {
                    gate.trigger = true;
                    currentStep++;
                }
                break;

            case 1:
                if (shootingTarget.GetIsActivated())
                {
                    rock.trigger = true;
                    currentStep++;
                }
                break;

            case 2:
                if (part.GetComponent <PickUpPart>().pickedUp)
                {
                    Destroy(part);
                    currentStep++;
                    cutsceneCam.Activate();
                    fallingRock.trigger = true;
                }
                break;

            case 3:
                if (checkpoint)
                {
                    checkpoint.Activate();
                }
                Destroy(this);
                break;

            default: break;
            }
            if (GameManager.puzzleStep[0] != currentStep)
            {
                GameManager.puzzleStep[0] = currentStep;
            }
        }
    }