Esempio n. 1
0
    void Update()
    {
        switch (currentState)
        {
        case RocketFlyState.WAITING_FOR_END:
            if (GameManager.Instance.CurrentState == GameManager.State.Launch)
            {
                director.Play();
                currentState = RocketFlyState.WAITING;
            }

            break;

        case RocketFlyState.PLAYER_JUMPING:
            PlayerJumpingState();
            break;

        case RocketFlyState.ROCKET_FLYING:
            foreach (var o in otherObjects)
            {
                o.AddExplosionForce(throwAwayForce, Vector3.zero, 40f);
            }

            RocketFlyingState();
            break;
        }
    }
Esempio n. 2
0
    public void RocketFlyAway()
    {
        var players = FindObjectsOfType <PlayerInfo>()
                      .Select(pi => pi.GetComponent <Transform>())
                      .Where(tr => tr != winner);
        var boxes = FindObjectsOfType <Box>()
                    .Select(b => b.GetComponent <Transform>());

        otherObjects = players.Union(boxes)
                       .Select(o => o.GetComponent <Rigidbody>())
                       .ToArray();

        rocketDirection = Vector3.up;

        onGroundParticles.SetActive(false);
        flyingParticles.SetActive(true);
        flyAwayCamera.enabled = true;

        currentState = RocketFlyState.ROCKET_FLYING;
    }
Esempio n. 3
0
    public void PlayerJumpToRocket()
    {
        var w = GameManager.Instance.Winner;

        if (w == null)
        {
            Debug.LogError("Winner is null!");
            return;
        }
        winner = w.GetComponent <Transform>();

        var rb       = winner.GetComponent <Rigidbody>();
        var collider = winner.GetComponent <Collider>();

        rb.isKinematic   = true;
        rb.useGravity    = false;
        collider.enabled = false;
        winnerOrigin     = rb.position;

        currentState = RocketFlyState.PLAYER_JUMPING;
    }