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); } }
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); } }