Ejemplo n.º 1
0
    public float NeutralY(int who)
    {
        who = ConstrainID(who);
        RunnerBehavior rb = runnerBehaviors[who];

        if (rb == null || !rb.Alive())
        {
            GameObject go = runners[who];
            if (go == null)
            {
                return(0);
            }
            else
            {
                return(go.transform.position.y);
            }
        }
        else
        {
            int        track     = ConstrainID(rb.DestTrack());
            List <int> neighbors = OnTrack(track);
            int        ordinal   = -1;
            for (int i = 0; i < neighbors.Count; ++i)
            {
                if (neighbors[i] == who)
                {
                    ordinal = i;
                    break;
                }
            }
            if (ordinal < 0)
            {
                return(TrackCenter(track));
            }
            else
            {
                return(TrackTop(track) -
                       (ordinal + 1) * TrackHeight()
                       / (neighbors.Count + 1));
            }
        }
    }