示例#1
0
        public static bool CanLeaveStop(ref TransportLine thisLine, ushort nextStop, int waitTime)
        {
            if ((int)nextStop == 0)
            {
                return(true);
            }
            ushort prevSegment = TransportLine.GetPrevSegment(nextStop);

            if ((int)prevSegment == 0 || ((int)thisLine.m_averageInterval - (int)Singleton <NetManager> .instance.m_segments.m_buffer[(int)prevSegment].m_trafficLightState0 + 2) / 4 <= 0)
            {
                return(true);
            }
            //begin mod(*): compare with interval aggression setup instead of default 64
            var targetWaitTime = Mathf.Min(OptionsWrapper <Settings> .Options.IntervalAggressionFactor + 12, byte.MaxValue);

            return(waitTime >= targetWaitTime); //4 * 16 = 64 is max waiting time in vanilla, 12 is min waiting time
            //end mod
        }