Example #1
0
 IEnumerator RaiseDoorway()
 {
     yield return new WaitForSeconds(doorAnimationDuration);
     player1.GetComponent<Player>().SetPlayerControl(true);//Start the players controlling.
     player2.GetComponent<Player>().SetPlayerControl(true);
     del -= MovingDoor;
     isDoorUp = true;
     float dir = firstApearsFrom1and2 ? 1f : -1f;
     cameraBound.localPosition = new Vector3(0f, 0f,
         (cameraBound.localScale.z / 2f + 5f) * dir
         );
     cameraBound.gameObject.SetActive(true);
 }
Example #2
0
    IEnumerator Stop(float delay)
    {
        yield return new WaitForSeconds(delay);
        del -= TransitionRoom;

        hasPlayer1 = false;
        hasPlayer2 = false;
        player1Loc = 0;
        player2Loc = 0;
        del += MovingDoor;

        StartCoroutine(RaiseDoorway());
        isActive = true;
    }
Example #3
0
    IEnumerator OpenDoor()
    {
        //play door sound
        //play door opening anim
        player1.GetComponent<Player>().SetPlayerControl(false);//stops the players controlling.
        player2.GetComponent<Player>().SetPlayerControl(false);
        player1.GetComponent<Player>().ZeroVelocity();
        player2.GetComponent<Player>().ZeroVelocity();

        del += MovingDoor;
        yield return new WaitForSeconds(doorAnimationDuration);

        del -= MovingDoor;
        isDoorUp = false;

        startTime = Time.time;
        startPOSPlayer1 = player1.transform.position;
        Vector3 zoneOffsetP1 = player1.transform.position - (transform.FindChild("WaitingZones").transform.FindChild((player1Loc).ToString()).position);

        startPOSPlayer2 = player2.transform.position;
        Vector3 zoneOffsetP2 = player2.transform.position - (transform.FindChild("WaitingZones").transform.FindChild((player2Loc).ToString()).position);

        if (player1Loc + 2 < 5)
        {
            endPOSPlayer1 = player1Loc == 1? (zone3.position + zoneOffsetP1): (zone4.position + zoneOffsetP1);
            endPOSPlayer2 = player2Loc == 1? (zone3.position + zoneOffsetP2): (zone4.position + zoneOffsetP2);
        }
        else if (player1Loc - 2 > 0)
        {
            endPOSPlayer1 = player1Loc == 3 ? (zone1.position + zoneOffsetP1) : (zone2.position + zoneOffsetP1);
            endPOSPlayer2 = player2Loc == 3 ? (zone1.position + zoneOffsetP2) : (zone2.position + zoneOffsetP2);
        }

        journeyLengthPlayer1 = Vector3.Distance(startPOSPlayer1, endPOSPlayer1);
        journeyLengthPlayer2 = Vector3.Distance(startPOSPlayer2, endPOSPlayer2);

        float transitiondelay = journeyLengthPlayer1 > journeyLengthPlayer2 ? journeyLengthPlayer1 : journeyLengthPlayer2;
        transitiondelay /= playerWalkSpeed;

        del += TransitionRoom;

        StartCoroutine(Stop(transitiondelay));
    }