Ejemplo n.º 1
0
    private void OnCollisionEnter(Collision collision)
    {
        if (isDestroying)
        {
            return;
        }

        GroundTile       tile   = collision.gameObject.GetComponent <GroundTile>();
        PlayerController player = collision.gameObject.GetComponent <PlayerController>();
        Ramp             ramp   = collision.gameObject.GetComponent <Ramp>();

        if (tile != null)
        {
            if (tile.HandleHit(teamAllegiance))
            {
                Disintegrate();
            }
        }
        else if (player != null && player.team == TeamUtils.GetOppositeTeam(teamAllegiance))
        {
            if (GameManager.Instance.rules.scoreIfHitPlayer)
            {
                GameManager.Instance.IncrementScore(teamAllegiance);
                Disintegrate();
            }
        }
        else if (ramp != null)
        {
            if (GameManager.Instance.rules.rampChangeAlliegance)
            {
                ChangeAllegiance(ramp.team);
            }
        }
    }
Ejemplo n.º 2
0
    public bool HandleHit(ETeam ballTeam)
    {
        if (ballTeam == TeamUtils.GetOppositeTeam(team))
        {
            if (GameManager.Instance.rules.hitsToDestroyTiles > 0)
            {
                hit++;
                if (hit >= GameManager.Instance.rules.hitsToDestroyTiles)
                {
                    if (GameManager.Instance.rules.scoreIfDestroyTile)
                    {
                        GameManager.Instance.IncrementScore(ballTeam);
                    }
                    DisableTile();
                }
                else
                {
                    renderer.material = hitMaterial;
                }
            }
            else if (GameManager.Instance.rules.scoreIfDestroyTile)
            {
                GameManager.Instance.IncrementScore(ballTeam);
            }

            return(true);
        }
        else //Ball hit tile of same team
        {
            return(false);
            //Start glow effect
        }
    }
Ejemplo n.º 3
0
    private void OnTriggerEnter(Collider other)
    {
        Ball ball = other.gameObject.GetComponent <Ball>();

        if (ball != null)
        {
            if (ball.teamAllegiance != ETeam.None && GameManager.Instance.rules.scoreIfBallFalls && ball.teamAllegiance == TeamUtils.GetOppositeTeam(team))
            {
                GameManager.Instance.IncrementScore(ball.teamAllegiance);
            }
            Destroy(ball.gameObject);
            return;
        }

        PlayerController player = other.gameObject.GetComponent <PlayerController>();

        if (player != null && destroyPlayer)
        {
            if (player.team != ETeam.None && GameManager.Instance.rules.scoreIfPlayerFalls)
            {
                GameManager.Instance.IncrementScore(TeamUtils.GetOppositeTeam(player.team));
            }
            GameManager.Instance.ReplacePlayer(player);
            return;
        }
    }