Beispiel #1
0
        private uint GetTouristGoingOutChance(ref TCitizen citizen, TouristTarget target)
        {
            Citizen.AgeGroup age = CitizenProxy.GetAge(ref citizen);
            switch (target)
            {
            case TouristTarget.Shopping:
                return(spareTimeBehavior.GetShoppingChance(age));

            case TouristTarget.Relaxing when WeatherInfo.IsBadWeather:
                return(0u);

            case TouristTarget.Party:
            case TouristTarget.Relaxing:
                return(spareTimeBehavior.GetRelaxingChance(age));

            default:
                return(100u);
            }
        }
Beispiel #2
0
        private TouristTarget AdjustTargetToTimeAndWeather(ref TCitizen citizen, TouristTarget target)
        {
            switch (target)
            {
            case TouristTarget.Shopping:
            case TouristTarget.Relaxing:
            case TouristTarget.Party:
                uint goingOutChance = GetTouristGoingOutChance(ref citizen, target);
                if (!Random.ShouldOccur(goingOutChance))
                {
                    return(TouristTarget.Hotel);
                }

                if (target == TouristTarget.Relaxing && TimeInfo.IsNightTime)
                {
                    return(TouristTarget.Party);
                }

                goto default;

            default:
                return(target);
            }
        }